希望有人能帮助我,我一直在挣扎几天。从gridview编辑模式获取控件的ID以供Javascript使用
基本上需要发生的事情是,当用户点击编辑到gridview并点击某个文本框时,javascript日历会弹出并且用户选择一个日期。
到目前为止,我可以静态设置它,日历适用于这一行,但不适用于ID更改后的其他行。
我的ASP代码(文本框的ID已被设置为txtStartDate):
包含日历$("#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);
这工作,对于一个文本框
<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函数。它不适用于其他因为'ct102'随着每一行而改变。
** **喔。不要*硬编码你的名字。如果需要,将控件的客户端id行为设置为常量,但不要硬编码由ASP.NET呈现的控件名称。 – 2011-06-08 16:09:16
为什么有特定的原因?我做了另一个控制,我需要在编辑模式下拉列表,并工作正常 – George 2011-06-08 16:31:12