C# 检查代码隐藏文件中的CheckBoxField

C# 检查代码隐藏文件中的CheckBoxField,c#,asp.net,.net,C#,Asp.net,.net,CheckBoxField似乎不接受ID属性,因此我无法直接调用代码隐藏文件中的组件 <asp:DetailsView ID="dv" runat="server" AutoGenerateRows="False" DataKeyNames="ID" DataSourceID="ds" DefaultMode="Insert" OnItemInserting="dv_ItemInserting" OnItemInserted="dv_ItemInserted"

CheckBoxField似乎不接受ID属性,因此我无法直接调用代码隐藏文件中的组件

<asp:DetailsView ID="dv" runat="server" AutoGenerateRows="False" 
    DataKeyNames="ID" DataSourceID="ds" DefaultMode="Insert" 
    OnItemInserting="dv_ItemInserting" OnItemInserted="dv_ItemInserted"
    OnItemUpdated="dv_ItemUpdated" OnItemCommand="dv_ItemCommand" 
    EnableModelValidation="True">
    <Fields>
        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="false" ReadOnly="True" SortExpression="ID" />
        <asp:CheckBoxField ID="chkMidmarket" DataField="Midmarket_Flag" HeaderText="Midmarket" SortExpression="Midmarket_Flag" runat="server" />
        ...
    </Fields>
</asp:DetailsView>

...
如何从代码隐藏文件中选中复选框?

使用

<asp:CheckBox ID="youid" runat="server" />

在设计视图中,转到gridview编辑列并选择列,然后单击“转换为模板”字段

    <asp:TemplateField HeaderText="Midmarket" SortExpression="Midmarket_Flag">
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged ="CheckBox_CheckedChanged"
                Checked='<%# Bind("Midmarket_Flag") %>' Enabled="false" />
        </ItemTemplate>
    </asp:TemplateField>

即使使用runat服务器属性,我也会遇到以下错误:Type“System.Web.UI.WebControls.CheckBoxField”没有名为“ID”的公共属性。
总是放在另一个控件中,如
。编辑您的问题并提供该控件的标记。@MichaelLiu根据请求更新了代码我需要使用CheckBoxField而不是CheckBox
    <asp:TemplateField HeaderText="Midmarket" SortExpression="Midmarket_Flag">
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged ="CheckBox_CheckedChanged"
                Checked='<%# Bind("Midmarket_Flag") %>' Enabled="false" />
        </ItemTemplate>
    </asp:TemplateField>
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
    try
    {
        CheckBox cb = sender as CheckBox;
        GridViewRow gr = cb.Parent.Parent as GridViewRow;
        string key = GridView1.DataKeys[gr.DataItemIndex].Value.ToString();
    }
    catch (Exception exc)
    {
    }
}