小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

用WSSv3中的SPGridView控件來(lái)顯示數(shù)據(jù) 2

 cz0007 2010-04-11

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

開(kāi)發(fā)ASP.NET應(yīng)用時(shí),通常需要顯示行列格式的表格類型數(shù)據(jù)。盡管我們可以通過(guò)程序創(chuàng)建一個(gè)HTML表格來(lái)實(shí)現(xiàn)該需求,但不如使用ASP.NET 2.0中GridView這樣的服務(wù)器端控件來(lái)得更便捷。在WSS平臺(tái)中同樣也提供了一個(gè)SPGridView控件,從ASP.NET GridView控件繼承而來(lái)。該控件為我們?cè)赟harePoint開(kāi)發(fā)中顯示表格型數(shù)據(jù)提供了很大的便利。

在我們添加一個(gè)SPGridView控件到一個(gè)自定義頁(yè)面中之前,我們首先必須通過(guò)@Register在頁(yè)面頂部添加一個(gè)指向Microsoft.SharePoint.dll的注冊(cè),并引用Microsoft.SharePoint.WebControls命名空間。

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

完成@Register注冊(cè)部分編寫(xiě)后,我們就可以在應(yīng)用程序頁(yè)面中創(chuàng)建SPGridView控件的標(biāo)記了。注意,標(biāo)記前必須加上注冊(cè)時(shí)指定的前綴。

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

與其他ASP.NET中的Grid控件不同,SPGridView控件并不支持自動(dòng)生成欄。如果你不指定AutoGenerateColumns屬性為"false", 將會(huì)得到一個(gè)運(yùn)行時(shí)錯(cuò)誤。

用SPGridView控件顯示一個(gè)ADO.NET的DataTable

填充一個(gè)SPGridView控件最簡(jiǎn)單的辦法就是創(chuàng)建一個(gè)ADO.NET DataTable。因?yàn)槲覀兛梢詫ataTable的DefaultView屬性指定到SPGridView控件的DataSource上作為SPGridView的數(shù)據(jù)源,然后直接調(diào)用DataBind方法即可。
下面的示例展示了一個(gè)名為PropertyCollectionBinder的工具類,通過(guò)這個(gè)類包裝了以下工作:創(chuàng)建并顯示一個(gè)具有兩欄數(shù)據(jù)的ADO.NET DataTable。同時(shí),這個(gè)類還提供一個(gè)很有用的方法BindGird,接受一個(gè)SPGridView控件做參數(shù),并會(huì)調(diào)用其數(shù)據(jù)綁定方法來(lái)展示ADO.NET DataTable的數(shù)據(jù)。

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 來(lái)綁定數(shù)據(jù)

這樣我們就可以通過(guò)在自定義頁(yè)面的后臺(tái)代碼中使用PropertyCollectionBinder類來(lái)簡(jiǎn)化用SPGridView控件顯示一系列名/值對(duì)的過(guò)程。下面給出一個(gè)這樣的例子,通過(guò)SPGridView來(lái)顯示調(diào)用WSS對(duì)象模型得到的一些屬性值。
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控件還有一個(gè)好處,就是該控件已經(jīng)集成了WSSv3的樣式。同樣,在SharePoint的標(biāo)準(zhǔn)后臺(tái)頁(yè)面和WebPart中也大量使用了該控件。這就是說(shuō),在SharePoint中我們的自定義應(yīng)用程序和WebPart,都可以使用SPGridView控件,并且可以獲得與標(biāo)準(zhǔn)的SharePoint界面相同的外觀。

SPGridView控件不支持自動(dòng)生成欄,所以我們必須明確的使用SPBoundField來(lái)綁定每個(gè)欄,正如上面的例子所寫(xiě)的那樣。然而,產(chǎn)生用于展示的數(shù)據(jù)確并不困難。我們可以創(chuàng)建一個(gè)ADO.NET DataTable或者通過(guò)使用query類型的對(duì)象返回一個(gè)DataTable,例如使用SPSiteDataQuery對(duì)象進(jìn)行一個(gè)在網(wǎng)站集范圍內(nèi)的跨多個(gè)列表的查詢,并將返回的DataTable指定給SPGridView做數(shù)據(jù)源,是不是很酷?

查看視頻

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多