Telerik RadGridView动态增删行及行列操作

 

  最近使用一直使用第三方控件Telerik,版本 2011 Q1,一直使用显示控件RadGridView,使用起来比DataGird好使,

  也发现有控件问题。

  1.增行

  RadGridView中使用BeginInsert(),动态增加默认行方法,避免与 ShowInsertRow一起使用

  1 ///增加行
  2 radgridview.BeginInsert();

  或使用ShowInsertRow=true;

  1 radgridview.ShowInsertRow=true;

  2.删行

  RadGridView中也提供删除行方法,这个需要使用Teleri中的命令telerik:RadGridViewCommands.Delete,

  同时设置CommandParameter对行绑定

1 <telerik:GridViewColumn Header="Delete" >
2 <telerik:GridViewColumn.CellTemplate>
3 <DataTemplate>
4 <telerik:RadButton Content="Delete"
5 Command="telerik:RadGridViewCommands.Delete"
6 CommandParameter="{Binding}" />
7 </DataTemplate>
8 </telerik:GridViewColumn.CellTemplate>
9 </telerik:GridViewColumn>

 

  如图:

  

 

  写成如下方式也与上面效果一样:

1 <telerik:GridViewColumn Header="Delete" >
2 <telerik:GridViewColumn.CellTemplate>
3 <DataTemplate>
4 <telerik:RadButton Content="Delete"
5 ///调用方法
6 Click="DelRow_Click" />
7 </DataTemplate>
8 </telerik:GridViewColumn.CellTemplate>
9 </telerik:GridViewColumn>
1  private void DelRow_Click(object sender, RoutedEventArgs e)
2 {
3 var deletecommand = RadGridViewCommands.Delete as RoutedUICommand;
4 deletecommand.Execute(radgridview.CurrentItem, radgridview);
5 }

 

  RadGridViewCommands命令还有很多,有时间可以看下

  3.行数据获取

  使用这控件中,发现取数据不像Datagrid那样获取,开始也无法理解,仔细看下文档,获取方式还真不同。

  将RadGridView.Items中每项Item转换为GridRowView的,在获取GridRowView中的每列

  使用RadGridView.ItemContainerGenerator.ContainerFromItem()方法

1 foreach (var item in radgridview.Items)
2 {
3 GridViewRow row = radgridview.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow;
4 int level=Convert.ToInt32((row.Cells[0].Content as TextBox).Text);
5 double min=Convert.ToDouble((row.Cells[1].Content as TextBox).Text);
6 double max=Convert.ToDouble((row.Cells[2].Content as TextBox).Text);
7 Color c=(row.Cells[3].Content as RadColorPicker).SelectedColor;
8 ......
9 }

 

  4.设置新行的默认初始值

  通过 BeginInsert()方法增加新行,需要设置每行每列的初始值,需要在RowLoaded方法中写方法

  RadGrid_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)

 1 private void radgridview_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
2 {
3 ///是标题栏返回
4 if (e.Row is GridViewHeaderRow)
5 return;
6
7 int rownumber=(sender as RadGridView).Items.Count;
8
9 ///设置每列初始值
10 (e.Row.Cells[0].Content as TextBox).Text = rownumber.ToString();
11 ///颜色随机
12 Random rand = new Random();
13 byte r = Convert.ToByte(rand.Next(255));
14 byte g= Convert.ToByte(rand.Next(255));
15 byte b= Convert.ToByte(rand.Next(255));
16 (e.Row.Cells[3].Content as RadColorPicker).SelectedColor = Color.FromArgb(180,r,g,b);
17 }

  本文来自菊花香的博客,原文地址:http://www.cnblogs.com/MR520/archive/2011/08/08/2130731.html

转载于:https://www.cnblogs.com/qq247039968/p/4062008.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值