У меня есть gridview, в котором есть столбцы с установленными флажками. Рядом с установленными флажками
метки, отображающие даты в зависимости от того, установлен ли флажок. (Я удалил некоторые здесь для упрощения)
Что я хочу сделать, так это запустить даже щелчок установленного флажка и отобразить / скрыть метку в столбце этой строки.
Я пробовал несколько различных методов, но не могу заставить его работать.
Любая помощь будет принята с благодарностью
1007 *
function ShowHide(rowId, chk, lbl) {
if (chk.checked == true) {
document.getElementById(lbl).style.display ="block";
}
if (chk.checked == false) {
document.getElementById(lbl).style.display ="none";
}
}
<asp:GridView ID="grd" ClientIDMode="Static" runat="server"
Width="100%" DataKeyNames="ID" AutoGenerateColumns="False" GridLines="Vertical"
CellPadding="4" AllowPaging="false" AllowCustomPaging="false" PageSize="25" PagerStyle-Visible="False"
ShowFooter="true" OnRowDataBound="grd_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Address">
<ItemTemplate>
<asp:Label ID="lblAddress" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Address") %>'></asp:Label>
<asp:HiddenField ID="ID" runat="server" Value='<%# DataBinder.Eval(Container,"DataItem.ID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Moved Date">
<ItemTemplate>
<asp:CheckBox ID="chkMove" ClientIDMode="Static" runat="server"></asp:CheckBox>
<asp:Label ID="lblMove" ClientIDMode="Static" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void grd_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = (CheckBox)e.Row.FindControl("chkMove");
Label lbl = (Label)e.Row.FindControl("lblMove");
chk.Attributes.Add("onClick", "ShowHide(" + e.Row.rowId + "," + chk.UniqueID + "," + lbl.UniqueID + ")");
}
}