使用radgrid删除多行

时间:2012-12-22 11:05:53

标签: telerik radgrid

我正在使用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的记录

2 个答案:

答案 0 :(得分:0)

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

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

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

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

strId += item.id

保存所有选定的ID。

答案 1 :(得分: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
    }
}