如何从 ASPxGridView 获取 CheckBox 值

How get CheckBox value from ASPxGridView

我有 ASPxGridView,其中包含来自数据库的数据。我已经用 CheckBox 添加了一列。 我有一个带有 onClick 动作的按钮。我想要当我按下按钮时执行此代码

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总是勾选false。即使 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,我会标记必要的行并更新 table。 我不明白这是如何以另一种方式进行的。谢谢

在第 DataRow row = ASPxGridView1.GetDataRow(i) 行之后,所有复选框都变为 false,因为在第二个圆圈 if false。