zoukankan      html  css  js  c++  java
  • Silverlight 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 }

             

         

  • 相关阅读:
    用csc命令行手动编译cs文件
    笔录---果壳中的C#第一章
    Visual Studio2012快捷键总结
    JavaScript 二维数组排列组合2
    JavaScript 递归法排列组合二维数组2
    JavaScript 递归法排列组合二维数组
    JavaScript 二维数组排列组合
    在 CentOS6 上安装 GraphicsMagick-1.3.30
    Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.6:resources failed: Unable to load the mojo 'resources' (or one of its required components)
    java.sql.SQLException: Column count doesn't match value count at row 1
  • 原文地址:https://www.cnblogs.com/MR520/p/2130731.html
Copyright © 2011-2022 走看看