asp.net gridview里面的DatePicker没有显示?

时间:2012-06-25 12:45:19

标签: jquery asp.net

我在updatepanel中有一个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" 处理这个问题的最佳方法是什么?我当前的问题是日历没有出现,除非我打开开发人员工具并直接在控制台窗口中输入并点击回车。

修改

我可以用这个解决它:

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

在代码背后,但这看起来很难看......有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

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

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

jQuery $(document).ready and UpdatePanels?

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

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

答案 1 :(得分:0)

确保将datepicker函数绑定到文档ready

上的元素
$(function(){
   $(".datePickerDueDate" ).datepicker();
});

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

还要确保将2个库加载到您的页面。 jQuery jQuery UI