【发布时间】:2017-09-04 16:31:54
【问题描述】:
我在 gridView 中有一个标签和多个文本框和一个按钮,单击该按钮时我需要访问这些文本框,这就是我的代码的样子..
<asp:GridView id="grdEventProfile" runat="server" >
<Columns>
<asp:BoundField DataField="EventID" SortExpression="EventID" HeaderText="Event ID"></asp:BoundField>
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox id="txtEventDate" runat="server" Text='<%# Bind("EventRecognitionDate") %>' ></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="Label4" runat="server" "Text='<%# Bind("EventRecognitionDate") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox id="txtTaskDueDate" Text='<%# Bind("TaskDueDate") %>' ></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="Label2" runat="server" Text='<%# Bind("TaskDueDate") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button id="btnEdit" runat="server" Text="EDT" OnClientClick = "AllowEdit()" ></asp:Button>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在我的 JavaScript 函数 AllowEdit() 中,我希望能够做这样的事情
if ( EventID == 01 && txtEventDate.value == 0 )
txtTaskDueDate.Enabled = False;
我无法通过 document.getElementByID 访问我的文本框或标签,因为它们位于网格内。
我也试过这种方法:
var grid = document.getElementById('<%=grdEventProfile.ClientID%>');
var elements = grid.getElementsByTagName("input");
但事实证明它只适用于 (onChange) 属性,而不适用于 onClientClick。
提前致谢。
【问题讨论】:
-
为什么不在服务器端试试呢?
-
这是一个小组项目,我不应该在服务器端进行任何更改,我希望我能够在客户端进行更改!所以你是说 JavaScript 不可行?
标签: javascript asp.net gridview