.net 复选框Gridview启用和禁用
我有一个gridview,其中复选框以禁用开始。我想在单击gridview中的编辑按钮时启用它们。这是标记.net 复选框Gridview启用和禁用,.net,asp.net,gridview,checkbox,.net,Asp.net,Gridview,Checkbox,我有一个gridview,其中复选框以禁用开始。我想在单击gridview中的编辑按钮时启用它们。这是标记 <asp:GridView ID="grd_Bookcode" runat="server" DataSourceID="sqldatasource1" autogeneratecolumns="False" onrowcommand="grd_Bookcode_RowCommand1" onrowdatabound="grd_Bookcode_RowDataBound">
<asp:GridView ID="grd_Bookcode" runat="server" DataSourceID="sqldatasource1"
autogeneratecolumns="False" onrowcommand="grd_Bookcode_RowCommand1"
onrowdatabound="grd_Bookcode_RowDataBound">
<Columns>
<asp:BoundField DataField="BookCode" HeaderText="Book Code"/>
<asp:BoundField DataField="mag_name" HeaderText="Name"/>
<asp:BoundField DataField="display_date" HeaderText="Display Date"/>
<asp:TemplateField HeaderText = "PC">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("82_PC").ToString() == "1" ? true:false %>' Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="eReader">
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Eval("83_eReader").ToString() == "1" ? true:false %>' Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tablet">
<ItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" Checked='<%# Eval("84_Tablet").ToString() == "1" ? true:false %>' Enabled="false"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mobile">
<ItemTemplate>
<asp:CheckBox ID="CheckBox4" runat="server" Checked='<%# Eval("85_Mobile").ToString() == "1" ? true:false %>' Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="None">
<ItemTemplate>
<asp:CheckBox ID="CheckBox5" runat="server" Checked='<%# Eval("86_None").ToString() == "1" ? true:false %>' Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
我想您可以在GridView的所有行中循环并启用以下复选框:
protected void grd_Bookcode_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
for (int index = 0; index < GridView1.Rows.Count; index++)
{
CheckBox chk = grd_Bookcode.Rows[index].FindControl("CheckBox" + index + 1) as CheckBox;
chk.Enabled = true;
}
}
}
protectedvoid grd\u Bookcode\u row命令(对象发送方,GridViewCommandEventArgs e)
{
如果(例如,CommandName==“编辑”)
{
对于(int index=0;index
希望这有帮助 如果希望编辑控件与标准控件不同,则应使用“EditItemTemplate”。这将允许编辑行具有不同的控件、值等。。。当行的模式更改时 例如:
<Columns>
<asp:TemplateField HeaderText="PC">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("82_PC").ToString() == "1" ? true:false %>' Enabled="false" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked="true" Enabled="false" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
您正在使用的代码发生了什么情况?此代码没有启用复选框吗?你能更清楚地回答这个问题吗?问题是什么?什么不起作用?如果进行调试,是否能够到达以下代码行:CheckBox chk=(CheckBox)row.FindControl(“CheckBox1”)?对不起,我对这个问题做了轻微的修改。Davide,我顺利通过了那行代码,编译过程中也没有错误。问题是,当页面重新加载时,复选框无法启用。对,这就是我要做的,但使用edititemtemplate只是一种更简单的方法,如果它解决了您的问题,请不要忘记将其标记为答案@扎卡里非常感谢你!!我已经寻找这个很久了,一直保持着它的简洁和美观!
<Columns>
<asp:TemplateField HeaderText="PC">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("82_PC").ToString() == "1" ? true:false %>' Enabled="false" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked="true" Enabled="false" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>