我开始使用日期选择器,非常喜欢它。但现在我面临着一个问题。 我有一个ASP.Net应用程序。我有一个Master Page,一个Default.aspx页面和几个用户控件(.ascx页面)。在其中一个用户控件中,我有一个带有包含日期的文本框的GridView。那些文本框使用datepickers。 GridView位于UpdatePanel中。我为GridView使用自定义分页。例如,我需要转到下一页,UpdatePanel已更新。问题是,当我从初始页面转到另一个页面时,日期选择器消失。 这是我的代码: 在母版页的底部:
<script type="text/javascript">
$(document).ready(function() {
$("input.date").datepicker({
showButtonPanel: true,
dateFormat: 'mm/dd/y',
changeYear: true,
closeText: 'X'
});
});
</script>
在GridView中:
<asp:TextBox ID="txtWFHCDate" runat="server" Text='<%#Eval("StrHCDate") %>' BorderStyle="None" Width="80%" CssClass="date" ></asp:TextBox>
为初始GridView页面生成的html:
<input id="ctl00_CPHDefault_tcTPS_TPProd_ctl01_tcProduction_TPWorkflow_WorkflowGridView_ctl05_txtWFHCDate" class="date hasDatepicker" type="text" style="border-style:None;width:80%;" value="10/18/11" name="ctl00$CPHDefault$tcTPS$TPProd$ctl01$tcProduction$TPWorkflow$WorkflowGridView$ctl05$txtWFHCDate">
更改GridView页面后生成的html:
<input id="ctl00_CPHDefault_tcTPS_TPProd_ctl01_tcProduction_TPWorkflow_WorkflowGridView_ctl05_txtWFHCDate" class="date" type="text" style="border-style:None;width:80%;" value="10/18/11" name="ctl00$CPHDefault$tcTPS$TPProd$ctl01$tcProduction$TPWorkflow$WorkflowGridView$ctl05$txtWFHCDate">
我尝试将脚本从母版页移动到Default.aspx页面和.ascx页面,但没有任何帮助。
你可以帮忙吗? 感谢。答案 0 :(得分:1)
在页面加载期间,ready()函数调用datepicker()以向文本输入添加必要的绑定。当您更改GridView / UpdatePanel中的“页面”时,这些文本输入将被丢弃并替换为新的。
在UpdatePanel加载下一个“页面”之后,您需要再次调用datepicker()来重新绑定文本输入。您可以将其集成到.ascx控件中,或使用描述为here的UpdatePanel回调。