【问题标题】:Find checkbox control in ASPxGridView在 ASPxGridView 中查找复选框控件
【发布时间】:2014-04-22 06:05:19
【问题描述】:

我有一个 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;
    }

我得到一个空引用异常,所以我猜它找不到控件,我做错了。有任何想法吗?谢谢!

【问题讨论】:

    标签: c# checkbox devexpress aspxgridview


    【解决方案1】:

    您使用了错误的方法ASPxGridView.FindRowTemplateControl 搜索包含在指定数据row's template 中的指定服务器控件。

    您应该使用ASPxGridView.FindRowCellTemplateControl 方法来查找驻留在列的DataItemTemplate 容器或指定数据cell's template 中的控件。

    另请参考Accessing Controls Contained within Templates话题

    参考资料:
    ASPxGridView - How to find a control inside the DataItem template
    Cant find ASPxTextBox control in DataItem template using FindRowTemplateControl

    【讨论】:

    • 我觉得这很有用。虽然我在你回答之前就已经解决了。无论如何,您都正确地回答了它。谢谢!
    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多