I have a AspxGridView that has a checkbox dataitemTemplate inside a gridViewDatacheckColumn. Now I want to find that control for each row and uncheck/check them on runtime.

Here's my code for the 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>

Here's my code for iterating to each row and finding the control.

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

I'm getting a null reference exception so I guess, it cannot find the control and I'm doing it the wrong way. Any ideas? Thanks!

有帮助吗?

解决方案

You are using wrong method ASPxGridView.FindRowTemplateControl which searches for the specified server control contained within the specified data row's template.

You should use the ASPxGridView.FindRowCellTemplateControl method to find a control residing in the column's DataItemTemplate container or specified data cell's template.

Please also refer to the Accessing Controls Contained within Templates topic

References:
ASPxGridView - How to find a control inside the DataItem template
Cant find ASPxTextBox control in DataItem template using FindRowTemplateControl

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top