MSDN Visual系列:用WSSv3中的SPGridView控件来显示数据

本文介绍了如何在SharePoint中使用SPGridView控件显示表格数据。SPGridView是从ASP.NET GridView控件继承而来,专为SharePoint设计。文章详细讲解了如何配置和使用此控件,并提供了一个示例,展示了如何绑定数据并呈现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文:http://msdn2.microsoft.com/en-us/library/bb466219.aspx

开发ASP.NET应用时,通常需要显示行列格式的表格类型数据。尽管我们可以通过程序创建一个HTML表格来实现该需求,但不如使用ASP.NET 2.0中GridView这样的服务器端控件来得更便捷。在WSS平台中同样也提供了一个SPGridView控件,从ASP.NET GridView控件继承而来。该控件为我们在SharePoint开发中显示表格型数据提供了很大的便利。

在我们添加一个SPGridView控件到一个自定义页面中之前,我们首先必须通过@Register在页面顶部添加一个指向Microsoft.SharePoint.dll的注册,并引用Microsoft.SharePoint.WebControls命名空间。

< %@ Register 
  
Tagprefix ="SharePoint"  
  Namespace
="Microsoft.SharePoint.WebControls"  
  Assembly
="Microsoft.SharePoint, [4-part assembly name] "  % >

完成@Register注册部分编写后,我们就可以在应用程序页面中创建SPGridView控件的标记了。注意,标记前必须加上注册时指定的前缀。

< SharePoint:SPGridView 
  
runat ="server"  
  ID
="grdPropertyValues"  
  AutoGenerateColumns
="false"
  RowStyle-BackColor
="#DDDDDD"
  AlternatingRowStyle-BackColor
="#EEEEEE"   />  

与其他ASP.NET中的Grid控件不同,SPGridView控件并不支持自动生成栏。如果你不指定AutoGenerateColumns属性为"false", 将会得到一个运行时错误。

用SPGridView控件显示一个ADO.NET的DataTable

填充一个SPGridView控件最简单的办法就是创建一个ADO.NET DataTable。因为我们可以将DataTable的DefaultView属性指定到SPGridView控件的DataSource上作为SPGridView的数据源,然后直接调用DataBind方法即可。
下面的示例展示了一个名为PropertyCollectionBinder的工具类,通过这个类包装了以下工作:创建并显示一个具有两栏数据的ADO.NET DataTable。同时,这个类还提供一个很有用的方法BindGird,接受一个SPGridView控件做参数,并会调用其数据绑定方法来展示ADO.NET DataTable的数据。

using  System.Data;
using  Microsoft.SharePoint;
using  Microsoft.SharePoint.WebControls;

public   class  PropertyCollectionBinder {
  
protected  DataTable PropertyCollection  =   new  DataTable();
  
public  PropertyCollectionBinder() {
    PropertyCollection.Columns.Add(
" PropertyName " typeof ( string ));
    PropertyCollection.Columns.Add(
" PropertyValue " typeof ( string ));
  }
  
public   void  AddProperty( string  PropertyName,  string  PropertyValue) {
    DataRow newRow 
=  PropertyCollection.Rows.Add();
    newRow[
" PropertyName " =  PropertyName;
    newRow[
" PropertyValue " =  PropertyValue;
  }
  
public   void  BindGrid(SPGridView grid) {
    SPBoundField fldPropertyName 
=   new  SPBoundField();
    fldPropertyName.HeaderText 
=   " Property Name " ;
    fldPropertyName.DataField 
=   " PropertyName " ;
    grid.Columns.Add(fldPropertyName);
    SPBoundField fldPropertyValue 
=   new  SPBoundField();
    fldPropertyValue.HeaderText 
=   " Value " ;
    fldPropertyValue.DataField 
=   " PropertyValue " ;
    grid.Columns.Add(fldPropertyValue);
    grid.DataSource 
=  PropertyCollection.DefaultView;
    grid.DataBind();
  }
}

用PropertyCollectionBinder 来绑定数据

这样我们就可以通过在自定义页面的后台代码中使用PropertyCollectionBinder类来简化用SPGridView控件显示一系列名/值对的过程。下面给出一个这样的例子,通过SPGridView来显示调用WSS对象模型得到的一些属性值。
SPSite siteCollection  =   this .Site;
SPWeb site 
=   this .Web;
PropertyCollectionBinder pcb 
=   new  PropertyCollectionBinder();
pcb.AddProperty(
" Site Title " , site.Title);
pcb.AddProperty(
" Site ID " , site.ID.ToString().ToUpper());
pcb.AddProperty(
" Current User Name " , site.CurrentUser.Name);
pcb.BindGrid(grdPropertyValues);


在基于SharePoint的解决方案中使用SPGridView控件还有一个好处,就是该控件已经集成了WSSv3的样式。同样,在SharePoint的标准后台页面和WebPart中也大量使用了该控件。这就是说,在SharePoint中我们的自定义应用程序和WebPart,都可以使用SPGridView控件,并且可以获得与标准的SharePoint界面相同的外观。

SPGridView控件不支持自动生成栏,所以我们必须明确的使用SPBoundField来绑定每个栏,正如上面的例子所写的那样。然而,产生用于展示的数据确并不困难。我们可以创建一个ADO.NET DataTable或者通过使用query类型的对象返回一个DataTable,例如使用SPSiteDataQuery对象进行一个在网站集范围内的跨多个列表的查询,并将返回的DataTable指定给SPGridView做数据源,是不是很酷?

查看视频

转载于:https://www.cnblogs.com/Sunmoonfire/archive/2007/05/24/758829.html

内容概要:本文详细探讨了基于阻尼连续可调减振器(CDC)的半主动悬架系统的控制策略。首先建立了CDC减振器的动力学模型,验证了其阻尼特性,并通过实验确认了模型的准确性。接着,搭建了1/4车辆悬架模型,分析了不同阻尼系数对悬架性能的影响。随后,引入了PID、自适应模糊PID和模糊-PID并联三种控制策略,通过仿真比较它们的性能提升效果。研究表明,模糊-PID并联控制能最优地提升悬架综合性能,在平顺性和稳定性间取得最佳平衡。此外,还深入分析了CDC减振器的特性,优化了控制策略,并进行了系统级验证。 适用人群:从事汽车工程、机械工程及相关领域的研究人员和技术人员,尤其是对车辆悬架系统和控制策略感兴趣的读者。 使用场景及目标:①适用于研究和开发基于CDC减振器的半主动悬架系统的工程师;②帮助理解不同控制策略(如PID、模糊PID、模糊-PID并联)在悬架系统中的应用及其性能差异;③为优化车辆行驶舒适性和稳定性提供理论依据和技术支持。 其他说明:本文不仅提供了详细的数学模型和仿真代码,还通过实验数据验证了模型的准确性。对于希望深入了解CDC减振器工作原理及其控制策略的读者来说,本文是一份极具价值的参考资料。同时,文中还介绍了多种控制策略的具体实现方法及其优缺点,为后续的研究和实际应用提供了有益的借鉴。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值