Мой первый столбец gridview содержит tetxbox и метку. Второй столбец содержит флажки. Когда пользователь нажимает на флажок «check_all», должно появиться текстовое поле всех строк. Первоначально он установлен как невидимый. Также ярлык должен исчезнуть.
А когда пользователь нажимает на отдельные флажки в каждой строке, должно появиться соответствующее текстовое поле и метка должна исчезнуть. Как я могу добиться этого с помощью JavaScript?
<asp:TemplateField
HeaderText="Add Note"
itemstyle-horizontalalign="Center" >
<ItemTemplate>
<asp:Label ID="Label1"
runat="server"
Text='<%# Eval("notes") %>'>
</asp:Label>
<asp:TextBox ID="TextBox1"
runat="server"
Width="100px"
Text='<%# Eval("notes") %>'
Visible="false">
</asp:TextBox>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center"
VerticalAlign="Middle"
Width="60px"/>
<ItemStyle HorizontalAlign="Center"
Width="60px">
</ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-HorizontalAlign="Center">
<HeaderTemplate>
<asp:CheckBox ID="check_all"
onclick="ShowHideChkBx(this)"
runat="server"
EnableViewState="true"
CssClass="gridcheckbox" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1"
onclick="ShowHideChkBx(this)"
runat="server" Checked="false" />
</ItemTemplate>
</asp:TemplateField>
Javascript код:
function ShowHideChkBx(ele) {
var GridView = document.getElementById('<%=GridView1.ClientID %>')
var checkBoxes = GridView.getElementsByTagName("input");
for (i = 1; i < GridView.rows.length; i++) {
}
if (ele.checked) { //to check all checkboxes when user clicks on check_all
for (var i = 1; i < checkBoxes.length; i++) {
if (checkBoxes[i].type == "checkbox") {
checkBoxes[i].checked = true;
}
if (checkBoxes[i].type == "text") {
checkBoxes[i].disabled = false;
}
}
}
else
{
for (var i = 1; i < checkBoxes.length; i++) {
if (checkBoxes[i].type == "checkbox") {
checkBoxes[i].checked = false;
}
}
}
}