Page.ClientScript.RegisterStartupScript不起作用

时间:2014-02-25 13:02:42

标签: c# javascript asp.net webforms

我已经在站点主页面上编写了Javascripts代码。但是,当我打电话给Javascirpts时,它不起作用。任何人都可以帮我搞清楚吗?谢谢

以下是网站母版页中的Javascript I代码。

<head id="Head1" runat="server">
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="/Styles/jquery-ui-1.9.2.custom.min.css" />
<script type="text/javascript" src="/Scripts/jquery-1.8.3.js"></script>
<script type="text/javascript" src="/Scripts/jquery-ui-1.9.2.custom.min.js"></script>

<script type="text/javascript">
    function dialog(text) {
        $("#text").text(text);
        $("#dialog-message").dialog
        ({
            buttons: {
                close: function () { $(this).dialog("close"); }
            }
        });
    };

    function dialogWithRedirect(text, url) {
        $("#text").text(text);
        $("#dialog-message").dialog
    ({
        buttons: {
            close: function () { location.href = url; $(this).dialog("close"); }
        }
    });
    };

    var confirmed = false;
    function confirmDialog(obj, text) {
        if (!confirmed) {
            $("#text").text(text);
            $("#dialog-message").dialog({

                buttons: {
                    "Confirm": function () {
                        $(this).dialog("close");
                        confirmed = true;
                        obj.click();
                    },
                    "Cancel": function () {
                        $(this).dialog("close");
                    }
                }
            });
        }
        return confirmed;
    };
</script>

<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>

这就是我称之为Javascripts的方式。

protected void ImageButtonOK_Click(object sender, ImageClickEventArgs e)
    {
        if (tbFirstName.Text != "" && tbLastName.Text != "" && tbNickName.Text != "" && tbUsername.Text != "" && tbPassword.Text != "" && tbConfirmPassword.Text != "")
        {
            if (validateUsername())
            {

                Database database = new Database();
                string sql = "INSERT INTO users " +
                             "           (user_id " +
                             "           ,first_name " +
                             "           ,last_name " +
                             "           ,nickname " +
                             "           ,image " +
                             "           ,username " +
                             "           ,password) " +
                             "     VALUES " +
                             "           (" + user_id + " " +
                             "           ,'" + tbFirstName.Text + "' " +
                             "           ,'" + tbLastName.Text + "' " +
                             "           ,'" + tbNickName.Text + "' " +
                             "           ,'" + pictureFile + "' " +
                             "           ,'" + tbUsername.Text + "' " +
                             "           ,'" + tbPassword.Text + "')";
                database.executeNonQuery(sql);
                database.close();

                Page.ClientScript.RegisterStartupScript(typeof(Page), "print", "<script type='text/javascript'> dialogWithRedirect('Save complete','user.aspx');</script>");

            }

        }
        else
        {
            Page.ClientScript.RegisterStartupScript(typeof(Page), "print", "<script type='text/javascript'> dialog('Please fill all required data');</script>");

        }
    }

2 个答案:

答案 0 :(得分:1)

我怀疑问题是在定义函数dialogWithRedirectdialog之前,在代码中注册的脚本块被插入到页面中。要确保在调用这些函数时已定义这些函数,请在加载回调中包装调用:

Page.ClientScript.RegisterStartupScript(typeof(Page),
                                        "print",
                                        "<script type='text/javascript'> $(function() { dialog('Please fill all required data'); });</script>");

答案 1 :(得分:1)

或者您也可以使用以下代码

String PopUp="<script type='text/javascript'>"+"alert('Please fill all required data')"+"</script>");
Page.RegisterStartupScript("PopScript",Popup);

我希望这会对你有所帮助。