0

我想打开一个模型,在代码中单击某个按钮时弹出一个模型,该模型后面有一些 if else 条件。首先,我无法解决最好的方法。我认为我的选择是followign。1) 调用 jquery 模型弹出 2) ajax 模型弹出

这是一个修复某些按钮单击条件以打开模型弹出窗口的按钮,如果模型弹出窗口说是,那么我希望客户重定向到某个付款页面,他将支付购买该物品的费用。

现在我正在使用我这样调用的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 函数。

4

4 回答 4

1

我用来从我的代码隐藏中获取 javascript 警报的方法是这样的:

public void AMessage(string message)
{
    ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "info only", "alert('" + message + "');", true);
}

如果您没有在按钮中使用 OnClientClick 事件,则通过类似的处理程序发送消息。在您的情况下,不要调用"alert('" + message + "');"您编写的函数。

于 2012-05-21T12:14:43.817 回答
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());
于 2012-05-21T12:25:41.750 回答
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");
                        }
                    }
                });
            });
        }
于 2012-05-21T12:15:01.347 回答
0

我在您的代码中指出的一个问题是:

ScriptManager.RegisterStartupScript(this, this.GetType(), "tmp", "<script>xyz()</script>", true);

您将最后一个参数作为 true 传递,即 addScriptTags,但您已经在调用中添加了脚本标记,因此可能会在那里产生问题。

干杯

于 2012-05-21T13:33:02.243 回答