近日项目中用到一个submit操作,需要给提示并回调函数,需要依旧选择提交之前的Tab选项。
使用layout.js来处理回调的提示。
JscriptMsg("店主审核待审设置成功", "", "Success");
调用方法是
/// <summary>
/// 添加编辑删除提示
/// </summary>
/// <param name="msgtitle">提示文字</param>
/// <param name="url">返回地址</param>
/// <param name="msgcss">CSS样式</param>
protected void JscriptMsg(string msgtitle, string url, string msgcss)
{
string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\")";
ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true);
}
/// <summary>
/// 带回传函数的添加编辑删除提示
/// </summary>
/// <param name="msgtitle">提示文字</param>
/// <param name="url">返回地址</param>
/// <param name="msgcss">CSS样式</param>
/// <param name="callback">JS回调函数</param>
protected void JscriptMsg(string msgtitle, string url, string msgcss, string callback)
{
string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\", " + callback + ")";
ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true);
}
开始是使用回调函数来处理回调的。发现下面的方法可能通过框架在chrome中正常调用。
//返回时选择原来的Tab
function selecttab(id) {
var tabContents = $(top.frames["mainframe"].window.document).find(".tab-content");
var tabs = $(top.frames["mainframe"].window.document).find(".content-tab-ul-wrap a");
tabs.removeClass("selected");
tabContents.hide();
tabs.eq(id).addClass("selected");
tabContents.eq(id).show();
}
但是当使用回调时,发现并不能被执行。原来回调时有一个"back参数"。下面是layout里的方法。可以看出窗体被刷新了。因此处理失败。但没有测试去掉back,使用回调函数会不会成功。
//可以自动关闭的提示,基于lhgdialog插件
function jsprint(msgtitle, url, msgcss, callback) {
var iconurl = "";
switch (msgcss) {
case "Success":
iconurl = "32X32/succ.png";
break;
case "Error":
iconurl = "32X32/fail.png";
break;
default:
iconurl = "32X32/hits.png";
break;
}
$.dialog.tips(msgtitle, 2, iconurl);
if (url == "back") {
frames["mainframe"].history.back(-1);
} else if (url != "") {
frames["mainframe"].location.href = url;
}
//执行回调函数
if (arguments.length == 4) {
callback();
}
}
后来的解决方案是在窗体上加上一个字段来记录是选择的哪一个。来处理的。 时间紧,先草草记录一下。
hidtab.Value = "1";
if (result)
{
JscriptMsg("店主审核待审设置成功", "", "Success");
}
else
{
JscriptMsg("店主审核待审设置失败", "", "Error");
}
//返回时选择原来的Tab
function selecttab(id) {
var tabContents = $(top.frames["mainframe"].window.document).find(".tab-content");
var tabs = $(top.frames["mainframe"].window.document).find(".content-tab-ul-wrap a");
tabs.removeClass("selected");
tabContents.hide();
tabs.eq(id).addClass("selected");
tabContents.eq(id).show();
}
$(document).ready(function () {
if ($('#hidtab').val() == '1') {
selecttab(1);
};
});