为什么Jquery日期时间选择器在回发后会丢失?

时间:2016-01-08 21:09:19

标签: javascript c# jquery asp.net jquerydatetimepicker

我使用过Jquery DateTime Picker。它在第一页加载时工作正常,但在回发或任何按钮点击后停止工作。为什么?我不明白为什么?

头部:

<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());

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

3 个答案:

答案 0 :(得分:0)

txtBoxDateOfBirth是否放在UpdatePanel中?如果是,则每次更新面板时都需要注册javascript。

应用代码中js的重点是什么?您只需将txtBoxDateOfBirth包装在jQuery对象中,并且不执行任何操作。

附注:Page.RegisterStartupScript已被删除,您应使用ClientScriptManager.RegisterStartupScript

答案 1 :(得分: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());
    }

答案 2 :(得分:-1)

在页面中使用加载IsPostBack方法,并在条件

时将代码放在里面
 if (!Page.IsPostBack)
 {
    ...  ...  .. 
 }