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 以删除记录时,它只检索一个记录 ID 并删除检索到 ID 的记录。

示例:我选择记录 1,2,3,4 并单击删除按钮,它只删除 ID=4 的记录

4

2 回答 2

0

我不太了解vs Basic。但我可以说,你在这个命令中失去了你当前的 ID 知识

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

foreach 中的每次迭代,您的 strId 变量都会更新为新的项目 ID。

也许你可以使用 concat 字符串方法(也许

strId += item.id

保存所有选定的 ID。

于 2012-12-23T18:25:42.133 回答
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 回答