0

CheckBoxすべて、のすべての行にを追加しましたGridView。しかし、 when ポストバックCheckBoxからを見つけるのに苦労しています。GridView

これが私が行ったコードです。見直してください。ありがとう。

protected void GridViewThirAct_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                SomeObject mapItem = (SomeObject)e.Row.DataItem;
                string itemId = mapItem.ItemId;

                Literal lit = e.Row.FindControl("SelectButtonMarkup") as Literal;

                if (IsThirdSeriesMultipleSelect)
                {
                    lit.Text = String.Format("<input type='checkbox' name='FinalActivity' id='RowSelector{0}' value='{1}'", e.Row.RowIndex, itemId);
                }
                else
                {
                    lit.Text = String.Format("<input type='radio' name='FinalActivity' id='RowSelector{0}' value='{1}'", e.Row.RowIndex, itemId);
                }
                lit.Text += " />";


            }
        }

のコードAspxは以下です。

    <asp:GridView ID="GridViewThirAct" runat="server" AutoGenerateColumns="false" Width="100%"
        OnRowCreated="GridViewThirAct_RowCreated" OnRowDataBound="GridViewThirAct_RowDataBound">
        <Columns>
            <asp:TemplateField ItemStyle-Width="5%">
                <ItemTemplate>
                    <asp:Literal ID="SelectButtonMarkup" runat="server"></asp:Literal>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="ItemValue" HeaderText="Activity Name" ItemStyle-Width="80%" />
            <asp:BoundField DataField="ItemId" HeaderText="ID" ItemStyle-Width="15%" />
        </Columns>
    </asp:GridView>

<asp:LinkButton ID="btnOk" runat="server" onclick="btnOk_Click"></asp:LinkButton>

ボタンクリックイベントですべての選択値を取得したい。ありがとう。

私はすでにRequest.Form["FinalActivity"]それを作成するために使用してCheckBoxRowsますGridView。私はコードを試しましたがthis.GridViewThirAct.Rows[i].Cells[0].FindControl(controlId)、うまくいきません。ありがとう。

4

1 に答える 1

1

試してみてください:
.aspx

 <asp:GridView ID="grdFoodList" AutoGenerateColumns="False" runat="server">
        <Columns>
         <asp:TemplateField>
             <HeaderTemplate>
                 Select
             </HeaderTemplate>
             <ItemTemplate>
                <asp:CheckBox runat="server" ID="selectFood" />
             </ItemTemplate>
         </asp:TemplateField>

コードビハインド:

for (int rows = 0; rows < grdFoodList.Rows.Count; rows++)
        {
            if (((CheckBox) grdFoodList.Rows[rows].Cells[0].FindControl("selectFood")).Checked)
            {
               //your code
            }

        }
于 2013-07-18T06:28:15.597 に答える