簡體   English   中英

選擇CheckBox時如何從GridView獲取CheckBox值

[英]How to get CheckBox value from GridView when CheckBox selected

我有 GridView 自動填充為

<asp:GridView ID="gvValues" runat="server" 
    OnRowDataBound="gvValues_RowDataBound" 
    OnPageIndexChanging="gvValues_PageIndexChanging" 
    <Columns>           
        <asp:TemplateField HeaderText="#">
            <ItemTemplate>
                <%# gvValues.PageSize*gvValues.PageIndex+ Container.DisplayIndex+1  %> 
                <asp:CheckBox ID="chkProduct" runat="server" CssClass="chkProduct"/>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField  HeaderText="online" meta:resourcekey="Online">
            <ItemTemplate > 
                <asp:CheckBox ID="chkProductonline" runat="server"  OnCheckedChanged ="chkProductonline_CheckedChanged" AutoPostBack="true"/>
            </ItemTemplate>
        </asp:TemplateField>

我需要的是當我點擊chkProductonline復選框時,觸發一個事件並獲取chkProductonlinechkProducton值。 我試過這個,但它總是給我空。

protected void chkProductonline_CheckedChanged(object sender, EventArgs e)
{
    var chkProductonline = FindControl("chkProductonline") as CheckBox;
    // bool ischeck = chkProductonline.Checked;

    var chkProduct = gvValues.FindControl("chkProduct") as CheckBox;
}

我無法循環 GridView。 我需要一個一個地做這個。 有沒有另一種方法可以做到這一點?

你可以試試這個:

protected void chkProductonline_CheckedChanged(object sender, EventArgs e)
{
    CheckBox chkProductonline = sender as CheckBox;
    ...

    CheckBox chkProduct = chkProductionLine.NamingContainer.FindControl("chkProduct") as CheckBox;
    ...
}

您需要在特定行上調用 FindControl。 您將無法在整個 GridView 上調用它,因為存在重復的內容(即多個 chkProductionlines 和 chkProducts)。 一行知道它的復選框,而不是其他的。

所以你可以做的是首先獲取調用該事件的 CheckBox(你的發送者參數,chkProductionline)並使用它的NamingContainer 由於它包含在 GridView 行中,因此可以使用該行來查找您可能需要的其他控件。

protected void chkProductonline_CheckedChanged(object sender, EventArgs e)
{
    CheckBox chkProductionline = (CheckBox)sender;
    GridViewRow row = (GridViewRow)chkProductionline.NamingContainer;

    CheckBox chkProduct = (CheckBox)row.FindControl("chkProduct");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM