0

我在更新面板中有一个 asp.net gridview。我拥有的字段之一是一个简单的文本框,如下所示:

<asp:TextBox ID="txtDueDate" Text='<%# Eval("DueDate") %>' Width="75px" runat="server" ToolTip="Select the due date." CssClass="datePickerDueDate"></asp:TextBox>

我希望在单击此文本框时出现 jquery ui datepicker,我尝试过:

  $(".datePickerDueDate").datepicker({
            });

在 chrome 开发人员工具中,此文本框的 id 显示为:id="MainContent_gvLineItems_txtDueDate_0" 处理此问题的最佳方法是什么?我当前的问题是日历没有出现,除非我打开开发人员工具并直接在控制台窗口中输入并按 Enter。

编辑

我可以用这个解决它:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "setDueDate", "$(function(){$('.datePickerDueDate').datepicker('option' 'firstDay', 1);});", true);

在后面的代码中,但这似乎很难看……有更好的方法吗?

4

2 回答 2

1

考虑到您在更新面板中有数据,当更新面板执行部分回发时,可能不会触发文档就绪事件。

我想你会导致你的 gridview 进入编辑模式,然后你的文本框就会出现。

jQuery $(document).ready 和 UpdatePanels?

该问题包含我以前使用过的解决方案。

但基本上这意味着您订阅更新面板 endrequest,然后将 .datepicker 重新绑定到文本框。

于 2012-06-25T12:54:55.473 回答
0

确保将 datepicker 函数绑定到文档上的元素ready

$(function(){
   $(".datePickerDueDate" ).datepicker();
});

由于您的 jQuery 选择器基于 Css 类名,因此您无需担心为输入元素生成的 ID。只要元素的类名是datePickerDueDate,它就可以工作

还要确保您已将 2 个库加载到您的页面。jQueryjQuery 用户界面

于 2012-06-25T12:53:04.020 回答