为网格标题中的复选框指定一个值

时间:2016-05-12 10:12:40

标签: c# asp.net checkbox code-behind

我有以下网格

<asp:GridView ID="grdDWlocations" CssClass="table table-hover table-striped" runat="server" GridLines="None" ShowHeaderWhenEmpty="True"
    EmptyDataText="No data found..." AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="" Visible="true">
            <HeaderTemplate>
                <asp:CheckBox ID="allDWlocchk" runat="server" Checked="true" Width="10px" onclick="CheckAllgrdReqDW(this)"></asp:CheckBox>
            </HeaderTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="chk_DWlocReq" runat="server" Checked="true" Width="5px" OnCheckedChanged="chk_Req_CheckedChangedDW_Click" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Code">
            <ItemTemplate>
                <asp:Label ID="lbl_DWCode" runat="server" Text='<%# Bind("Ml_loc_cd") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Description">
            <ItemTemplate>
                <asp:Label ID="lbl_DWDescription" runat="server" Text='<%# Bind("Ml_loc_desc") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

我想为&#39; allDWlocchk&#39;分配一个值。这是标题检查,

我怎样才能在

背后的代码中执行此操作

我试过这个没有工作的东西

尝试1:

((CheckBox)(grdDWlocations).FindControl("allDWlocchk")).Checked = false;  

尝试2:

((CheckBox).FindControl("allDWlocchk")).Checked = false; 

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上,FindControl是前往这里的方式。但问题是它只适用于直接的孩子。因此,您无需在页面或GridView上搜索,而是需要在标题行中进行搜索。哪个可用作GridView属性。所以:

GridViewRow headerRow = grdDWlocations.HeaderRow;
((CheckBox)headerRow.FindControl("allDWlocchk")).Checked = false;