如何从一些按钮点击条件后面的代码调用javascript函数?

时间:2012-05-21 12:06:42

标签: javascript jquery asp.net

我想打开一个模型弹出一些按钮点击代码后面有一些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函数。

4 个答案:

答案 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,但您已经在调用中添加了脚本标记,因此可能会在那里创建问题。

干杯