删除选中的GridView行 [英] delete checked gridview rows
问题描述
我有一个包含2列的datagrid:一个复选框和一个绑定到数据成员的字符串.
当我选中标题复选框时,它应该选中每一行上的所有复选框.
我想删除选中的行...我该怎么做?
这是我的代码:
//xaml
< telerik:RadGridView 名称 =" ="span> GIsFilteringAllowed =" 错误" AutoGenerateColumns 错误" SelectionMode =" >>
< telerik:RadGridView.Columns >
< telerik:GridViewSelectColumn / >
< telerik:GridViewDataColumn 标题 =" DataMemberBinding {Binding FilterName}" >
< /telerik:RadGridView.Columns > 跨度>
< /telerik:RadGridView >
//.cs
命名空间ReportsUIScreens
{
公共局部类GridviewSetting_List:ChildWindow
{
私有列表< filterHistory > histList ;
public GridviewSetting_List(List < filterHistory > histListLink)
{
InitializeComponent();
histList = histListLink;
this.GridView_List.ItemsSource = histList;
}
私有void DeleteButton_Click(对象发送者,System.Windows.RoutedEventArgs e)
{
//这里是我要删除选中的行的地方
}
}
}
我之前曾在这种情况下,并且本文 [ ^ ]帮助了我解决问题.
尝试使用关键字"telerik + radgrid + delete + checkbox"
^ ]
我从我的一个项目中获得了此解决方案,这将帮助您只需要更改字段名称和列值
HTML代码
< 列 > ; < telerik:GridTemplateColumn 唯一名称 =" < ItemTemplate > < asp:CheckBox ID =" runat 服务器" AutoPostBack true" OnCheckedChanged chkPermission_Checked" / > < /ItemTemplate > < HeaderTemplate > < asp:CheckBox ID =" runat 服务器" OnCheckedChanged ToggleSelectedState" AutoPostBack true" / > < /HeaderTemplate > < /telerik:GridTemplateColumn > < telerik:GridTemplateColumn 唯一名称 =" 可见 false " < ItemTemplate > < asp:HiddenField ID =" runat 服务器" 值 <% #Eval(" )%> ' / > < /ItemTemplate > < /telerik:GridTemplateColumn > < telerik:GridBoundColumn DataField =" HeaderText PermissionTypeName " span> SortExpression ="UniqueName =" < /telerik:GridBoundColumn > < /Columns >
并且在代码中,您可以使用以下功能来获取选定的ID,并通过它们遍历每个ID,并做您想做的任何事情
受保护的 Sub ToggleSelectedState( ByVal 发件人 As 对象, ByVal e As EventArgs) ' 选中所有复选框 Dim headerCheckBox As CheckBox = TryCast (发送方,复选框) 对于 每个 dataItem As GridDataItem 在中rgPermission.MasterTableView.Items TryCast (dataItem.FindControl(" ),CheckBox).Checked = headerCheckBox.Checked dataItem.Selected = headerCheckBox.Checked 下一步 结束 子 ' chkEmail_Checked 公共 Sub chkPermission_Checked(> ByVal 发件人目标 对象, ByVal e ' 选中选中的复选框 Dim chkEmail As CheckBox = TryCast (发送方,复选框) 对于 每个 dataItem As GridDataItem 在中rgPermission.MasterTableView.Items 如果 TryCast (dataItem.FindControl(" chkPermission"),复选框).选中了真 其他 dataItem.Selected = 错误 结束 如果 下一步 结束 子
受保护的 子 btnAddnPermission_Click( ByVal 发件人 As 对象, ByVal e As System.EventArgs)句柄 btnAddnPermission.Click 对于 每个 dataItem As GridDataItem 在中rgPermission.MasterTableView.Items 如果 TryCast (dataItem.FindControl(" chkPermission"),复选框).选中了 TryCast (dataItem.FindControl(" hfPermissionID"),HiddenField).Value)+ |" ' hfPageUserEmail.Value + =(TryCast(dataItem.FindControl("emailAddress"),HiddenField).Value)+"| " 结束 如果 下一步
如果hfPermissionID.Value<> " 然后
Dim 测试 As 字符串 = hfPermissionID.Value Dim myStringArr() As String =拆分(测试," ) Dim 用户ID As 整数 = CInt (ddlADUser.SelectedValue) 如果 myStringArr IsNot 没什么 然后 Dim i As 整数 = 0 对于 每个 s As 字符串 在中myStringArr Dim ID As 字符串 = myStringArr(i ).ToString 如果 ID<> " 然后 尝试 boolVal = df.InsertPermissionByUserID(userID, CInt (IDs)) 捕获,例如 As 异常 ErrorMessage(例如.InnerException.Message) 结束 尝试 结束 如果 我+ = 1 下一步 结束 如果
结束Sub
在我的每个循环ID中,请注意,我是从RADGRID中选择的值的ID.
并通过在辐射项模板中使用隐藏字段来存储有价值的信息.....希望它将帮助您....
hi! can you help me with this one?
i have a datagrid with 2 columns: a checkbox and a string binded to a datamember.
when i check the header checkbox, it should check all checkboxes on each rows.
i want to delete the checked rows... how can i do that?
here''s my code:
//xaml
<telerik:RadGridView Name="GridView_List" GIsFilteringAllowed="False" AutoGenerateColumns="False" SelectionMode="Extended">
<telerik:RadGridView.Columns>
<telerik:GridViewSelectColumn />
<telerik:GridViewDataColumn Header="Gridview Style" DataMemberBinding="{Binding FilterName}"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
//.cs
namespace ReportsUIScreens
{
public partial class GridviewSetting_List : ChildWindow
{
private List<filterHistory> histList;
public GridviewSetting_List(List<filterHistory> histListLink)
{
InitializeComponent();
histList = histListLink;
this.GridView_List.ItemsSource=histList;
}
private void DeleteButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
//here's where i want to delete the checked row(s)
}
}
}
Hi,
I''ve been on this scenario before and this article[^] helped me solve the problem.
Try searching google with keywords ''telerik+radgrid+delete+checkbox''
http://www.ezzylearning.com/tutorial.aspx?tid=2963442&q=deleting-multiple-rows-in-gridview-using-checkbox[^]
i got this soluiton from one of my projects it will help u just need to change the field name and column value
HTML CODE
<Columns> <telerik:GridTemplateColumn UniqueName="Checked"> <ItemTemplate> <asp:CheckBox ID="chkPermission" runat="server" AutoPostBack="true" OnCheckedChanged="chkPermission_Checked" /> </ItemTemplate> <HeaderTemplate> <asp:CheckBox ID="headerChkbox" runat="server" OnCheckedChanged="ToggleSelectedState" AutoPostBack="true" /> </HeaderTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="PermissionID" Visible="false"> <ItemTemplate> <asp:HiddenField ID="hfPermissionID" runat="server" Value='<%#Eval("PermissionID") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="PermissionTypeName" HeaderText="PermissionTypeName" SortExpression="PermissionTypeName" UniqueName="PermissionTypeName"> </telerik:GridBoundColumn> </Columns>
AND IN CODE BEHIND U CAN USE FOLLOWING FUNCTION JUST TO GET THAT SELECTED ID''s AND LOOP THROUGH EACH OF THEM AND DO WHATEVER U WANT TO DO
Protected Sub ToggleSelectedState(ByVal sender As Object, ByVal e As EventArgs) 'Check all checkbox Dim headerCheckBox As CheckBox = TryCast(sender, CheckBox) For Each dataItem As GridDataItem In rgPermission.MasterTableView.Items TryCast(dataItem.FindControl("chkPermission"), CheckBox).Checked = headerCheckBox.Checked dataItem.Selected = headerCheckBox.Checked Next End Sub 'chkEmail_Checked Public Sub chkPermission_Checked(ByVal sender As Object, ByVal e As EventArgs) 'Check selected checkbox Dim chkEmail As CheckBox = TryCast(sender, CheckBox) For Each dataItem As GridDataItem In rgPermission.MasterTableView.Items If TryCast(dataItem.FindControl("chkPermission"), CheckBox).Checked Then dataItem.Selected = True Else dataItem.Selected = False End If Next End Sub
Protected Sub btnAddnPermission_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddnPermission.Click For Each dataItem As GridDataItem In rgPermission.MasterTableView.Items If TryCast(dataItem.FindControl("chkPermission"), CheckBox).Checked Then hfPermissionID.Value += (TryCast(dataItem.FindControl("hfPermissionID"), HiddenField).Value) + "|" 'hfPageUserEmail.Value += (TryCast(dataItem.FindControl("emailAddress"), HiddenField).Value) + "|" End If Next
If hfPermissionID.Value <> "" Then
Dim test As String = hfPermissionID.Value Dim myStringArr() As String = Split(test, "|") Dim userID As Integer = CInt(ddlADUser.SelectedValue) If myStringArr IsNot Nothing Then Dim i As Integer = 0 For Each s As String In myStringArr Dim IDs As String = myStringArr(i).ToString If IDs <> "" Then Try boolVal = df.InsertPermissionByUserID(userID, CInt(IDs)) Catch ex As Exception ErrorMessage(ex.InnerException.Message) End Try End If i += 1 Next End If
End Sub
NOTE IN MY FOR EACH LOOP ID''s IS THE ID OF THE VALUE I HAVE SELECTED FROM RADGRID
AND TO STORE THAT VALUE IM USING HIDDEN FIELD IN RADGRID ITEM TEMPLATE.....HOPE IT WILL HELP YOU....
这篇关于删除选中的GridView行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!