【发布时间】:2011-06-08 16:07:05
【问题描述】:
希望有人可以帮助我,我已经苦苦挣扎了几天。
基本上需要发生的事情是当用户在 gridview 上单击编辑并单击某个文本框时会弹出一个 javascript 日历并且用户选择一个日期。
到目前为止,我可以对其进行静态设置,并且日历适用于该行,但不适用于其他行,因为 ID 发生了变化。
我的 ASP 代码(文本框的 id 已设置为 txtStartDate):
<asp:TemplateField SortExpression="StartDate" HeaderText="Start Date">
<EditItemTemplate>
<asp:TextBox ID="txtStartDate" onClick="ddlchange()" Runat="server" Text='<%#Bind("StartDate")%>'>
</asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="label1" runat="server" Text='<%#Bind("StartDate")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
包含日历的Javascript函数
$("#ctl00_cphMain_GridView1_ctl02_txtStartDate").datepicker({ changeMonth: true });
//getter
var changeMonth = $("#ctl00_cphMain_GridView1_ctl02_txtStartDate").datepicker("option", "changeMonth");
//setter
$("#ctl00_cphMain_GridView1_ctl02_txtStartDate").datepicker("option", "changeMonth", true);
$("#ctl00_cphMain_GridView1_ctl02_txtStartDate").datepicker({ changeYear: true });
//getter
var changeYear = $("#ctl00_cphMain_GridView1_ctl02_txtStartDate").datepicker("option", "changeYear");
//setter
$("#ctl00_cphMain_GridView1_ctl02_txtStartDate").datepicker("option", "changeYear", true);
这适用于一个文本框。它不适用于其他,因为 'ct102' 随每一行而变化。
【问题讨论】:
-
哇。不要不要这样硬编码你的名字。如果需要,请将控件的客户端 ID 行为设置为常量,但不要对 ASP.NET 呈现的控件名称进行硬编码。
-
有什么具体原因吗?我为另一个控件这样做,我需要在编辑模式下的下拉列表并且工作正常
标签: javascript vb.net gridview