JQuery datepicker没有将值输出到gridview

时间:2013-01-23 07:05:47

标签: jquery asp.net .net datepicker

我有一个JQuery Datepicker正确绑定(我觉得如此)到gridview。它工作正常,并在网格和每一行的所有文本框上完美显示。

问题是它只将值输出到第一行。

因此,当我点击网格的第10行时,会在第10行弹出DatePicker,但是当我选择日期时,该日期仅填充在网格的第一行。

无论我选择哪一行,它总是只将值输出到第一行。

非常感谢任何帮助。

我试图通过文本框ID和类名称附加DatePicker而没有运气。

由于 Ashutosh说

    $("#txtGivenDate").datepicker({ dateFormat: "dd/mm/yy", max: '0', changeYear: true,         changeMonth: true });

网格标记如下:

    <asp:TemplateField HeaderText="Given Date" ControlStyle-Width="90%" HeaderStyle-Width="9%">
                <ItemTemplate>
                    <asp:TextBox ID="txtGivenDate" runat="server" Text='<%#Bind("GivenDate")%>' BorderStyle="None"
                        CssClass="youpi"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>

尝试了所有可能的解决方案

  1. 使用班级名称代替ID
  2. 使用ID标识文本框的名称
  3. 在文本框声明中使用ClientIDMode = Static
  4. 从gridview的RowCreated事件后面的代码中附加JS。
  5. 似乎没有用。

    由于 Ashutosh说

2 个答案:

答案 0 :(得分:0)

我建议你将$('#'+yourControl.ClientID).datepicker(...);初始化程序附加到GridView的RowDataBound事件中的StringBuilder,然后在所有行已经数据绑定后将StringBuilder注册为启动脚本,在网格中{ {1}}事件。

编辑:您也可以尝试使用班级名称。例如:DataBound

答案 1 :(得分:0)

我想我找到了答案。

ClientIDMode存在问题。

我们需要将文本框的ClientIDMode设置为“AutoID”。

设置此方法效果很好,问题已解决。

谢谢大家。