引用:Telerik(官 网:http://www.telerik.com/)是保加利亚的一个软件公司,专注于微软.Net平台的表示层与内容管理控件。我们提供高度稳定性和丰富性能的组件产品,并可应用在非常严格的环境中。现在拥有 Microsoft, HP, Alcoa, BP, Harper Collins, Siemens, T-Mobile, HJ Heinz和一些最主要的教育机构和很多政府机关等客户。

我在使用的版本是RadControls_for_Silverlight4_2011_1_0316,开发工具采用VS2010 +SQLServer2008R2进行测试学习

Grid是我们做系统必不可少的控件了,所以我准备从这个开始,为自己留下学习痕迹。

先是了解控件属性便于下一步学习,常用属性

RadGridView

常用属性

说明

DEMO名称

AutoGenerateColumns="False"

是否自动产生列

 

IsReadOnly="True"

IsReadOnly="{Binding IsChecked, Mode=TwoWay, ElementName=IsReadOnlyCheckBox}"

是否只读

Click Event

command

ShowGroupPanel="False"

是否显示分组面板(常用,一般情况下是不会用到这个的)

 

DataLoadMode="Asynchronous"

数据加载模式

 

RowIndicatorVisibility="Collapsed"

行指示

 

SelectionMode="Extended"

 

Command

CanUserDeleteRows="{Binding IsChecked, Mode=TwoWay, ElementName=CanUserDeleteRowsCheckBox}"

是否可删除行

Command

ScrollViewer.HorizontalScrollBarVisibility="Auto"

ScrollViewer.VerticalScrollBarVisibility="Auto"

横向竖向滚动条设定

 

IsFilteringAllowed="False"

列过滤查询是否可用

Enable/Disable

ShowColumnFooters="True"

是否显示列脚

Totals

ShowGroupFooters="True"

是否显示分组列脚

Totals

GridLinesVisibility=

Both

Horizontal

Vertical

网络线设置

gridlinevisiblity

GridViewDataColumn

属性

说明

DEMO名称

IsGroupable="False"

列是否加入分组

 

IsFilterable="False"

列是否可过滤查询

 

IsSortable="False"

列是否可排序

 

DataFormatString="{}{0:c2}"

DataFormatString="{}{0:d}"

列输入格式

 

GridViewDataColumn.FilteringControl :可自定义表头查询控件

1、产生自动编号-Row Number

· 自定义列与绑定列并存

XAML
<Grid>
<telerik:RadGridView x:Name="RadGridView1" ItemsSource="{Binding Customers}" AutoGeneratingColumn="RadGridView1_AutoGeneratingColumn">
<telerik:RadGridView.Columns>
<custom:MyColumn Header="#" Width="50" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
 

· 自动绑定后的列取消功能(如果取消的列较多,还是需要考虑用别的方法替代)

 private void RadGridView1_AutoGeneratingColumn(object sender, Telerik.Windows.Controls.GridViewAutoGeneratingColumnEventArgs e)
{
if (e.Column.UniqueName == "Order" || e.Column.UniqueName == "Product")
{
e.Cancel = true;
}
}

· 自定义列的处理

public class MyColumn : Telerik.Windows.Controls.GridViewColumn
{
public override FrameworkElement CreateCellElement(Telerik.Windows.Controls.GridView.GridViewCell cell, object dataItem)
{
TextBlock textBlock = cell.Content as TextBlock; if (textBlock == null)
{
textBlock = new TextBlock();
} textBlock.Text = (this.DataControl.Items.IndexOf(dataItem) + 1).ToString(); return textBlock;
}
}

2、行、列、单元格只读设置

private void ChangeEnableStateColumn(bool isEnabled)
{
GridViewHeaderRow headerRow = RadGridView1.ChildrenOfType<GridViewHeaderRow>().FirstOrDefault();
if (headerRow != null)
{
GridViewCellBase cell = (from c in headerRow.Cells
where c.Column.UniqueName == "EmployeeID"
select c).FirstOrDefault();
if (cell != null)
{
cell.IsEnabled = isEnabled;
}
} foreach (object item in RadGridView1.Items)
{
GridViewRow row = RadGridView1.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow;
if (row != null)
{
GridViewCellBase cell = (from c in row.Cells
where c.Column.UniqueName == "EmployeeID"
select c).FirstOrDefault();
if (cell != null)
{
cell.IsEnabled = isEnabled;
}
}
}
} private void ChangeEnableStateCell(bool isEnabled)
{
if (RadGridView1.Items.Count > 0)
{
GridViewRow row = RadGridView1.ItemContainerGenerator.ContainerFromItem(RadGridView1.Items[0]) as GridViewRow;
if (row != null)
{
GridViewCellBase cell = (from c in row.Cells
where c.Column.UniqueName == "EmployeeID"
select c).FirstOrDefault();
if (cell != null)
{
cell.IsEnabled = isEnabled;
}
}
}
} private void ChangeEnableStateRow(bool isEnabled)
{
if (RadGridView1.Items.Count > 0)
{
GridViewRow row = RadGridView1.ItemContainerGenerator.ContainerFromItem(RadGridView1.Items[0]) as GridViewRow;
if (row != null)
{
row.IsEnabled = isEnabled;
}
}
}
XAML
<Grid>
<telerik:RadGridView x:Name="RadGridView1" ItemsSource="{Binding Customers}" AutoGeneratingColumn="RadGridView1_AutoGeneratingColumn">
<telerik:RadGridView.Columns>
<custom:MyColumn Header="#" Width="50" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>

3、设置网格线颜色

private void VerticalGridLinesColorPicker_SelectedColorChanged(object sender, EventArgs e)
{
RadGridView1.VerticalGridLinesBrush = new SolidColorBrush(VerticalGridLinesColorPicker.SelectedColor);
} private void HorizontalGridLinesColorPicker_SelectedColorChanged(object sender, EventArgs e)
{
RadGridView1.HorizontalGridLinesBrush = new SolidColorBrush(HorizontalGridLinesColorPicker.SelectedColor);
}

4、保存用户对网格的设置

DEMO中saveandload settings中的Radgridviewsetting.cs非常用用:)

引用地址:http://www.cnblogs.com/forrestsun/archive/2011/05/13/2045859.html

【转】RadControls for Silverlight(学习1-GridView)的更多相关文章

  1. ArcGIS API for Silverlight学习笔记

    ArcGIS API for Silverlight学习笔记(一):为什么要用Silverlight API(转) 你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我都 ...

  2. asp.net学习之GridView事件、GridViewRow对象

    原文:asp.net学习之GridView事件.GridViewRow对象 1. GridView控件的事件 GridView有很多事件,事件可以定制控件的外观或者行为.事件分为三类     1.1 ...

  3. asp.net学习之GridView七种字段

    原文:asp.net学习之GridView七种字段 asp.net中GridView绑定到数据源时,可以自动显示数据源的各个字段.只要设定其AutoGenerateColumns为TRUE即可.但这, ...

  4. Silverlight:telerik RadControls for Silverlight 主题使用心得

    默认情况下: telerik RadControls控件使用的是Office Black 主题,就算在App.xaml.cs里写上 StyleManager.ApplicationTheme = ne ...

  5. 【转】RadControls for Silverlight(学习2-RadDataPager)

    引用地址:http://www.cnblogs.com/forrestsun/archive/2011/05/15/2046894.html <Grid x:Name="LayoutR ...

  6. ArcGIS api fo silverlight学习三(利用ElementLayer实现鼠标悬浮弹出自定义窗体)

    接着上一节继续学习,本节主要是利用ElementLayer实现鼠标悬浮弹出自定义窗体 参考博文:http://www.cnblogs.com/luxiaoxun/p/3322218.html 一.新建 ...

  7. ArcGIS api fo silverlight学习二(silverlight加载GraphicsLayer)

    上一节学习了silverlight加载GeoServer发布的WMS地图,这一节学习一下加载GraphicsLayer 一.加载.png或jpg文件图标 1.在MainPage.xaml中添加资源配置 ...

  8. ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)

    最好的学习资料ArcGIS api fo silverlight官网:http://help.arcgis.com/en/webapi/silverlight/samples/start.htm 一. ...

  9. Silverlight学习(三)

    最近对WCFRIA+MVVM+Prism有了初步的认识,能够简单的实现一些数据库的交互.这节主要讲的是Silverlight通过domainservice和ado.net实体数据模型与数据库的交互.本 ...

随机推荐

  1. 一些JavaScript中的DOM的优化小技巧

    在进行DOM优化时需要关注的问题有:修改DOM的时候,会引起页面的重排,重绘.因为JS是单线程执行的,那么在重排重绘的过程中可能会阻塞用户的操作.为了更好的用户体验,必须要严格控制这些操作. 一.对象 ...

  2. DNS域名解析服务器

    域名解析服务器,靠它把你要访问的网址找到然后把信息送到你电脑上.DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ...

  3. angular 路由请求js文件

    <script type="text/javascript" src="http://apps.bdimg.com/libs/angular.js/1.3.2/an ...

  4. Oracle Data Guard的配置

    概述 Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性.数据保护和灾难恢复解决方案.它提供管理.监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数 ...

  5. js 作用域

    js 作用域 js作用域链查找,子函数能取到父函数中定义的变量. 前段时间误写成如下形式: 这只是普通的函数调用,没有父子的关系,child()函数会在全局查找pi变量,没找到所以报错. 最近发现原来 ...

  6. WPF界面布局——各种控件

    Grid是最常用的动态布局控件,也是所有动态布局控件中唯一可按比例动态调整分配空间的控件. label : 标签,用来显示文本内容.可以为其他控件如文本框等添加一些描述性的信息. TextBox : ...

  7. Android 升级SQLite数据库

    每一个数据库版本都会对应一个版本号,当指定的数据库版本号大于当前数据库的版本号时,就会进入到onUpGrade()方法中去执行更新操作.需要为每一个版本号赋予其各自改变的内容然后再onUpgrade( ...

  8. JavaScript实现输入验证(简单的用户注册)

    1.先写用户注册页面userrAdd.jsp <body> <center> <form name="f1" id="f1" ac ...

  9. html / css打印样式

    最近做公司后台系统,需要打印贴箱标签,按照正常打印A4纸的标准,测试的效果不是自己想要的,文字排版布局都乱了,查了一些资料,需要设置的东西我总结了一下: 显示器(screen)和打印机(printer ...

  10. c#解压文件

    今天做了一个异步上传文件后再直接解压的一个东西.到解压这找了好多资料,做了1个多小时,贴出来,给自己张张记性. HttpPostedFileBase imgFile = Request.Files[0 ...