删除选中的GridView行 [英] delete checked gridview rows

查看:130
本文介绍了删除选中的GridView行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨!你能帮我这个吗?
我有一个包含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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆