我正在开发名为“TimePicker”的用户控件,
此用户控件利用 jquery timepicker,并将其包装以使其易于在 asp.net 中使用。
我正在使用一个简单的脚本将 jquery timepicker 绑定到一个文本框:
$('#<%= timepicker_textbox.ClientID %>').timepicker({
onClose: function() {
__doPostBack('<%= timepicker_textbox.ClientID %>', '');
}
});
我还选择将此文本框放在更新面板中,以避免在用户选择时间并导致回发之后刷新整页。
问题是在更新面板重新加载后,页面中的任何脚本都不会再次运行,因此 jquery timepicker 不会应用于文本框。
我设法通过添加以下代码来解决这个问题:
Sys.Application.add_load(function () {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(<%= timepicker_textbox.ClientID %>_onControlLoad());
});
function <%= timepicker_textbox.ClientID %>_onControlLoad()
{
$('#<%= timepicker_textbox.ClientID %>').timepicker({
onClose: function() {
__doPostBack('<%= timepicker_textbox.ClientID %>', '');
}
});
}
这会导致函数被注册,然后在每个部分回发时再次运行。
问题是这仅解决了这个特定时间选择器的问题,而不是同一页面中的任何其他元素!
这对我来说是个主要问题,因为我在一个页面中有多个时间选择器,并且在一个时间选择器上选择时间时,其他时间选择器不起作用......
欢迎任何建议。
谢谢,
艾坦。