我使用过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());
但是仍然会在任何按钮点击或回发时停止工作,为什么?
答案 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)
{
... ... ..
}