0

複数選択行で Radgrid ビューを使用しています

RadGrid のチェックボックスを使用して、選択したすべてのレコードを削除したい

コード:

<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" 
    OnNeedDataSource="RadGrid1_NeedDataSource" 
    AllowMultiRowSelection="true">
    <MasterTableView DataKeyNames="ID">
        <Columns>
            <telerik:GridClientSelectColumn>
            </telerik:GridClientSelectColumn>
            <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name">
            </telerik:GridBoundColumn>
            <telerik:GridEditCommandColumn>
            </telerik:GridEditCommandColumn>
        </Columns>
    </MasterTableView>
    <ClientSettings>
        <Selecting AllowRowSelect="true" />
    </ClientSettings>
</telerik:RadGrid>

.aspx.vb

    Protected Sub Button1_Click(sender As Object, e As EventArgs)
         For Each item As GridDataItem In RadGrid1.SelectedItems

            If item.Selected Then

            'Access data key

             Dim strID As String = item.GetDataKeyValue("ID").ToString()

            End If

         NEXT

       End Sub

問題は、このメソッドを使用して選択した行 ID を取得してレコードを削除すると、1 つのレコード ID のみが取得され、ID が取得されたレコードが削除されることです。

例: レコード 1、2、3、4 を選択して削除ボタンをクリックすると、ID=4 のレコードのみが削除されます。

4

2 に答える 2

0

以下のコードを試してください:

protected void Button1_Click(object sender, EventArgs e)
{
    string strID = string.Empty;

    foreach( GridDataItem grditem in  RadGrid.SelectedItems)
    {
        if (grditem.Selected)
        {
            strID = strID +  "," + grditem.GetDataKeyValue("ID").ToString();
        }
    }

    if (strID != string.Empty)
    {
        //your delete logic for db
        // pass strID it will contain 1,2,3,4
    }
}
于 2013-06-21T19:17:08.967 に答える
0

vs Basicはよくわかりません。しかし、このコマンドでは現在の ID の知識が失われていると言えます。

Dim strID As String = item.GetDataKeyValue("ID").ToString()

foreach の反復ごとに、strId 変数が新しいアイテム ID で更新されます。

おそらく、連結文字列メソッドを使用できます(おそらく

strId += item.id

選択したすべての ID を保存します。

于 2012-12-23T18:25:42.133 に答える