使用JavaScript访问网格中的文本框



我有一个lable和多个文本框和一个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函数washeit()中,我希望能够做类似的事情

if ( EventID == 01 && txtEventDate.value == 0 )
    txtTaskDueDate.Enabled = False;

我无法通过document.getElementByid访问我的文本框或lables,因为它们放置在网格中。

我也尝试了这种方法:

var grid = document.getElementById('<%=grdEventProfile.ClientID%>');
var elements = grid.getElementsByTagName("input");

但事实证明它仅适用于(onChange)属性,但不适用于onClientClick。

预先感谢。

gridview有行,因此您需要先指定正确的行编号,然后才能访问文本框。

var value = document.getElementById('<%= grdEventProfile.Rows[i].FindControl("TextBox1").ClientID %>').value;

或将它们全部循环并获得正确的一个。

$('#<%= grdEventProfile.ClientID %> input[type="text"]').each(function () {
    alert($(this).attr("ID"));
});

最新更新