如何在服务器端访问 <dx:ASPxGridView/>(Dev Express) 内的 "Checkbox" 控件 (c#)



我有一个dx:ASPxGridView(Dev express gridview),它包含HTML复选框-input type="checkbox"控件。问题是如何在服务器端访问这些HTML复选框,以便根据条件检查这些复选框。

请建议我如何访问服务器端的这些HTML复选框。

代码图像可以在这里找到

谢谢Girish Rawat

首先,要访问服务器上的HTML元素,需要使用runat="server"属性对其进行标记。

若要访问您的复选框,请处理ASPxGridView.HtmlDataCellPrepared事件。在事件处理程序中,可以使用ASPxGridView.FindRowCellTemplateControl方法获取输入。您还需要为输入设置ID。

<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" OnDataBinding="ASPxGridView1_DataBinding" OnHtmlDataCellPrepared="ASPxGridView1_HtmlDataCellPrepared" KeyFieldName="ID">
    <Columns>
        <dx:GridViewDataCheckColumn VisibleIndex="0">
            <DataItemTemplate>
                <input id="check" type="checkbox" runat="server" />
            </DataItemTemplate>
        </dx:GridViewDataCheckColumn>
    </Columns>
    <Styles AdaptiveDetailButtonWidth="22"></Styles>
</dx:ASPxGridView>
protected void ASPxGridView1_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e) {
    HtmlInputCheckBox check = (HtmlInputCheckBox)ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "check");
    check.Checked = GetValue((int)e.KeyValue);
}
public bool GetValue(int id) {
    // your logic
    return id % 2 == 0;
}

最新更新