我的ASPxGridView包含来自Data Base的数据。我已经用CheckBox添加了一列。而且我有关于点击动作的按钮。我想按下按钮时执行此代码
GridViewDataColumn dataColumn = ASPxGridView1.Columns[3] as GridViewDataColumn;
for (int i=0;i<ASPxGridView1.VisibleRowCount;i++)
{
DataRow row = ASPxGridView1.GetDataRow(i);
SqlCommand command = new SqlCommand("update Student set Enable=" + (Convert.ToBoolean(row["Enable"]) ? "0" : "1") + " where id=" + row["id"].ToString(), connection);
ASPxCheckBox box = ASPxGridView1.FindRowCellTemplateControl(i, dataColumn, "cb") as ASPxCheckBox;
if (box!=null && box.Checked)
{
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
}
但变量Box总是检查错误。即使CheckBox真的很重要。这个ASPxGridView
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<dx:GridViewDataTextColumn FieldName="id" ReadOnly="True" VisibleIndex="0">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="FName" VisibleIndex="2">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="LName" VisibleIndex="3">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="#" VisibleIndex="1">
<DataItemTemplate>
<dx:ASPxCheckBox ID="cb" runat="server" >
</dx:ASPxCheckBox>
</DataItemTemplate>
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Phone" VisibleIndex="5">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Email" VisibleIndex="6">
</dx:GridViewDataTextColumn>
<dx:GridViewDataCheckColumn FieldName="Enable" Visible="False" VisibleIndex="7" Name="Enable">
</dx:GridViewDataCheckColumn>
</Columns>
</dx:ASPxGridView>
如果box.checked = true,我想标记必要的行并更新表。这是怎么做的另一种方式,我不明白。谢谢。
排qazxsw poi之后所有checkBoks都变成了假,因为在第二个周期qazxsw poi false。