C# 在ASPxGridView中查找复选框控件

C# 在ASPxGridView中查找复选框控件,c#,checkbox,devexpress,aspxgridview,C#,Checkbox,Devexpress,Aspxgridview,我有一个AspxGridView,它在gridViewDatacheckColumn中有一个复选框dataitemTemplate。现在我想为每一行找到该控件,并在运行时取消选中/检查它们 以下是我的ASPxGridView代码: <dx:ASPxGridView ID="RadGrid2" runat="server" AutoGenerateColumns="False" ClientInstanceName="grid" KeyFieldName="StoreID" Sett

我有一个AspxGridView,它在gridViewDatacheckColumn中有一个复选框dataitemTemplate。现在我想为每一行找到该控件,并在运行时取消选中/检查它们

以下是我的ASPxGridView代码:

<dx:ASPxGridView ID="RadGrid2" runat="server" AutoGenerateColumns="False" ClientInstanceName="grid"
    KeyFieldName="StoreID" SettingsPager-Mode="ShowAllRecords" Width ="50%">
    <Settings ShowVerticalScrollBar="true" />
    <Columns>
        <dx:GridViewDataCheckColumn Caption="#" VisibleIndex="0"  Width ="25%">
            <DataItemTemplate>
                <dx:ASPxCheckBox ID="CheckBox1" runat="server">
                </dx:ASPxCheckBox>
            </DataItemTemplate>
        </dx:GridViewDataCheckColumn>
        <dx:GridViewDataTextColumn FieldName="STORE_NAME" Caption="Store name" ReadOnly="True" VisibleIndex="1" Width ="75%">
            <EditFormSettings Visible="False" />
        </dx:GridViewDataTextColumn>
    </Columns>
</dx:ASPxGridView>

下面是我迭代到每一行并查找控件的代码

for (int i = 0; i < RadGrid2.VisibleRowCount; i++)
    {
        CheckBox chk = RadGrid2.FindRowTemplateControl(i, "CheckBox1") as CheckBox;
        chk.Checked = false;
    }
for(int i=0;i

我得到了一个空引用异常,所以我猜,它找不到控件,我用了错误的方法。有什么想法吗?谢谢

您使用了错误的方法来搜索指定数据中包含的指定服务器控件

您应该使用该方法查找驻留在列的DataItemTemplate容器或指定数据中的控件

请同时参阅主题

参考文献:


我觉得这很有用。虽然在你回答之前我已经把它修好了。不管怎样,你的回答都是正确的。谢谢