在 devexpress 网格视图模板详细信息行中查找控件

本文关键字:查找 控件 详细信息 devexpress 网格 视图 | 更新日期: 2023-09-27 18:31:35

我想在我的网格视图中找到控件。按 id 显示的模板详细信息行

        bool IsAllAud = false;
        var item = (CheckBox)VendorsGrid.Templates.DetailRow.FindControl("CBIsAllAudience");
        IsAllAud = item.Checked;
        if (IsAllAud)
        {
        }
<dx:ASPxGridView ID="rt" ClientInstanceName="rt" runat="server"
            AutoGenerateColumns="false" DataSourceID="rtt" KeyFieldName="ID" Width="100%">
            <SettingsDetail AllowOnlyOneMasterRowExpanded="true" />
            <Columns>
                <dx:GridViewDataTextColumn FieldName="Name" Caption="Name" />
            </Columns>
            <Templates>
                <DetailRow>
                    <asp:CheckBox ID="CBIsAllAudience" runat="server" />
...

在 devexpress 网格视图模板详细信息行中查找控件

由于这是 DetailRow,因此需要调用 ASPxGridView.FindDetailRowTemplateControl Method

var item = VendorsGrid.FindDetailRowTemplateControl(index, "CBIsAllAudience");

在控制事件中 只需编写此代码

{
 for (int i = 0; i < gvVndInvoiceDevExp.VisibleRowCount ; i++)
            {
                GridViewDataColumn col1 = gvVndInvoiceDevExp.Columns[0] as GridViewDataColumn;
                GridViewDataColumn col2 = gvVndInvoiceDevExp.Columns[8] as GridViewDataColumn;
                CheckBox chk = gvVndInvoiceDevExp.FindRowCellTemplateControl(i, col1, "chk") as CheckBox;
                ASPxCheckBox chkIsVal = gvVndInvoiceDevExp.FindRowCellTemplateControl(i, col2, "chkIsVal") as ASPxCheckBox;
                if (chk.Checked == true)
                {
                    chkIsVal.Enabled = true;
                }
                else
                {
                    chkIsVal.Enabled = false;
                }
            }
}