我想打开一个模型弹出一些按钮点击代码后面有一些if else条件。首先,我无法解决什么是最好的方法。 我认为我的选择是跟随。 1)弹出调用jquery模型 2)弹出ajax模型
这是一个按钮,它固定一些按钮点击条件打开模型弹出,如果模型弹出显示是,那么,我希望客户重定向到他将支付购买项目的某个payemnt页面。
现在我正在使用Jquery模型弹出 我这样称呼
protected void imgClientFreeEval_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
-----
---some code not typed
if (SurveyCount > 1)
{
Session["YourAssessment"] = true;
Session["MyAssessment"] = false;
ScriptManager.RegisterStartupScript(this, this.GetType(), "tmp", "<script>xyz()</script>", true);
//Response.Redirect("~/yourAssessment.aspx");
}
}
我有这样的模型弹出
function xyz() {
// alert('hi tpo all');
// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
// $("#dialog:ui-dialog").dialog("destroy");
$(document).ready(function () {
$("#dialog-confirm").dialog({
resizable: false,
height: 140,
modal: true,
autoOpen: false,
buttons: {
"OK": function () {
$(this).dialog("close");
window.location.replace("http://stackoverflow.com");
},
Cancel: function () {
window.location.replace("http://stackoverflow.com");
$(this).dialog("close");
}
}
});
});
}
现在的问题是这个功能根本没有被调用。这有什么问题,我辛苦劳作很久,如果可能请建议我最好的方法我该怎么执行它。 我无法从按钮单击后面的代码调用此javasccipt函数。
答案 0 :(得分:1)
我用来从我的代码隐藏中获取javascript警报的方法是这样的:
public void AMessage(string message)
{
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "info only", "alert('" + message + "');", true);
}
如果您没有在按钮中使用OnClientClick事件,则通过类似的处理程序发送消息。在您的情况下,而不是调用"alert('" + message + "');"
调用您编写的函数。
答案 1 :(得分:0)
尝试使用:
function xyz() {
// alert('hi tpo all');
// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
// $("#dialog:ui-dialog").dialog("destroy");
$("#dialog-confirm").dialog({
resizable: false,
height: 140,
modal: true,
autoOpen: false,
buttons: {
"OK": function () {
$(this).dialog("close");
window.location.replace("http://stackoverflow.com");
},
Cancel: function () {
window.location.replace("http://stackoverflow.com");
$(this).dialog("close");
}
}
});
});
}
答案 2 :(得分:0)
如果您想获得提醒,然后在单击“确定”时重定向您的页面。你可以尝试:
ClientScript.RegisterStartupScript(this.GetType(), "My alert", "alert('" Your time has been finished "');", true);
System.Text.StringBuilder sbs = new System.Text.StringBuilder();
sbs.Append("<script language='javascript'>");
sbs.Append("window.location = 'http://www.google.com/'");//or whatever you want:-
sbs.Append("</script>");
Type tr = this.GetType();
ClientScript.RegisterClientScriptBlock(tr, "PopupScript2", sbs.ToString());
答案 3 :(得分:0)
我在您的代码中注意到的一个问题是:
ScriptManager.RegisterStartupScript(this, this.GetType(), "tmp", "<script>xyz()</script>", true);
您将最后一个参数传递为true,即addScriptTags,但您已经在调用中添加了脚本标记,因此可能会在那里创建问题。
干杯