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