0

私は Web 開発に不慣れで、コントロールを使用しているので、ご容赦ください。

チェック ボックスを含む GridView があります (以下のマークアップを参照してください)。

ユーザーがチェックボックスを通過してチェックボックスをオンにし、送信ボタンを押すと、LINQ クエリを実行して、checkbox1.checked = True ですべての行を取得したい

何かのようなもの:

Dim sList = (From row in Gridview1
             Where row.Cells("IsStarFleet") = True
             row.Cells("ID)).ToList

マークアップ:

<asp:GridView ID="GridView1" runat="server" Width="516px" AutoGenerateColumns="False" AllowPaging="True">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" />
        <asp:BoundField DataField="FirstName" HeaderText="FirstName" />
        <asp:TemplateField HeaderText="IsStarFleet">
            <ItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack ="False" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
4

1 に答える 1

5

FindControlfor コントロールTemplateFieldCells(index)forを使用する必要がありますBoundFields

Dim checkedIDs = From row In GridView1.Rows.Cast(Of GridViewRow)()
                 Where DirectCast(row.FindControl("CheckBox1"), CheckBox).Checked
                 Select row.Cells(0).Text
Dim checkedIdList = checkedIDs.ToList()
于 2013-01-14T21:04:10.667 に答える