0

我使用过 Jquery 日期时间选择器。它在第一页加载时工作正常,但在回发或单击任何按钮后停止工作。为什么 ?我不明白为什么?

在头部:

<script>
    $(function () {
        $("#<%= txtBoxDateOfBirth.ClientID %>").datepicker();
    });
</script>

在 asp.net 的页面加载中:

StringBuilder scripts = new StringBuilder();
scripts.Append("<script type='text/javascript'>");
scripts.Append("$(function () {");
scripts.Append("$('txtBoxDateOfBirth')");
scripts.Append("});");
scripts.Append("</script>)");

Page.ClientScript.RegisterStartupScript(this.GetType(), txtBoxDateOfBirth.ClientID + "_ReadyScript", scripts.ToString());

但是它仍然在任何按钮单击或回发时停止工作,为什么?

4

3 回答 3

0

我认为您应该像这样编写页面加载代码(而不是在回发条件下):

protected void Page_Load(object sender, EventArgs e)
    {
        StringBuilder scripts = new StringBuilder();
        scripts.Append("<script type='text/javascript'>");
        scripts.Append("$(function () {");
        scripts.Append("$('txtBoxDateOfBirth').datepicker();");
        scripts.Append("});");
        scripts.Append("</script>)");

        Page.ClientScript.RegisterStartupScript(this.GetType(), txtBoxDateOfBirth.ClientID + "_ReadyScript", scripts.ToString());
    }
于 2016-01-09T04:33:48.073 回答
0

Is txtBoxDateOfBirth placed inside an UpdatePanel ? if it is, the javascript needs to be registered everytime the panel is updated.

What is the point of the js in the app code ? You just wrap the txtBoxDateOfBirth in a jQuery object and do nothing with it.

Side note : Page.RegisterStartupScript is depracted, you should use ClientScriptManager.RegisterStartupScript

于 2016-01-08T22:33:56.163 回答
-1

在页面中使用 Load IsPostBack 方法并将代码放在 if 条件中

 if (!Page.IsPostBack)
 {
    ...  ...  .. 
 }
于 2016-01-08T21:29:48.953 回答