为什么Jquery Datetime选取器在回发后丢失
本文关键字:Jquery Datetime 选取 为什么 | 更新日期: 2023-09-27 18:29:36
我使用了Jquery DateTime选取器。它在第一页加载时工作良好,但在回发或单击任何按钮后停止工作。为什么?我不明白为什么?
头部:
<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());
但它仍然在任何按钮点击或回发时停止工作,为什么?
txtBoxDateOfBirth
是否放置在UpdatePanel中?如果是,那么每次更新面板时都需要注册javascript。
应用程序代码中的js有什么意义?您只需将txtBoxDateOfBirth
封装在一个jQuery对象中,并不对其执行任何操作
附带说明:Page.RegisterStartupScript已取消作用,您应该使用ClientScriptManager.Register StartupScript
我认为你应该这样写页面加载代码(不是在回发条件下):
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());
}
在页面中使用Load IsPostBack方法并将代码放入if condition 中
if (!Page.IsPostBack)
{
... ... ..
}