技术开发 频道

利用SPGridView显示列表的数据


【IT168技术文档】

  只要把数据源控件换成SPDataSource,然后利用SPDataSource连接相应的列表即可:
SPDataSource odsDataSource = new SPDataSource(); odsDataSource.ID = "ExampleSource"; Controls.Add(odsDataSource); SPSite site = new SPSite("http://ssjin073:9032"); SPList list = site.RootWeb.GetListFromUrl("http://ssjin073:9032/Lists/List/AllItems.aspx"); odsDataSource.List = list;
  整个Page_Load代码如下:
protected void Page_Load(object sender, EventArgs e) { SPDataSource odsDataSource = new SPDataSource(); odsDataSource.ID = "ExampleSource"; Controls.Add(odsDataSource); SPSite site = new SPSite("http://ssjin073:9032"); SPList list = site.RootWeb.GetListFromUrl("http://ssjin073:9032/Lists/List/AllItems.aspx"); odsDataSource.List = list; Response.Write(SPGridView1.FilterFieldName); SPGridView1.FilteredDataSourcePropertyFormat = "{1}='{0}'"; SPGridView1.FilteredDataSourcePropertyName = "FilterExpression" ; this.SPGridView1.AutoGenerateColumns = false; SPGridView1.EnableViewState = false; //添加字段 SPBoundField col = new SPBoundField(); col.DataField = "标题"; col.SortExpression = "标题"; col.HeaderText = "标题"; SPGridView1.Columns.Add(col); col = new SPBoundField(); col.DataField = "Origin"; col.SortExpression = "Origin"; col.HeaderText = "Origin"; SPGridView1.Columns.Add(col); SPGridView1.AllowSorting = true; SPGridView1.AllowFiltering = true; SPGridView1.FilterDataFields = ",标题"; //设置分组 SPGridView1.AllowGrouping = true; SPGridView1.AllowGroupCollapse = true; SPGridView1.GroupField = "Origin"; SPGridView1.GroupDescriptionField = "Origin"; SPGridView1.GroupFieldDisplayName = "分组:"; //添加下拉菜单字段 SPMenuField colMenu = new SPMenuField(); colMenu.HeaderText = "Presenter Name"; colMenu.TextFields = "标题"; //指定关联的菜单ID colMenu.MenuTemplateId = "PresenterListMenu"; //colMenu.NavigateUrlFields = "标题"; // colMenu.NavigateUrlFormat = "do.aspx?p={0}&q={1}"; //colMenu.TokenNameAndValueFields = "EDIT=Title,NAME=Rating"; //colMenu.SortExpression = "Title"; //菜单 MenuTemplate presenterListMenu = new MenuTemplate(); presenterListMenu.ID = "PresenterListMenu"; //菜单项 MenuItemTemplate biogMenu = new MenuItemTemplate( "Read Biography", "/_layouts/images/EawfNewUser.gif"); biogMenu.ClientOnClickNavigateUrl = "do.aspx?this=%EDIT%&that=%NAME%"; //entry.ClientOnClickScript = "your javascript here"; presenterListMenu.Controls.Add(biogMenu); //菜单项 MenuItemTemplate broadcastMenu = new MenuItemTemplate( "Recent Broadcasts", "/_layouts/images/ICWM.gif"); presenterListMenu.Controls.Add(broadcastMenu); //分割线 MenuSeparatorTemplate sepMenu = new MenuSeparatorTemplate(); presenterListMenu.Controls.Add(sepMenu); //菜单项 MenuItemTemplate favMenu = new MenuItemTemplate( "Add to Favorites", "/_layouts/images/addtofavorites.gif"); presenterListMenu.Controls.Add(favMenu); this.Controls.Add(presenterListMenu); SPGridView1.Columns.Add(colMenu); //绑定数据源 this.SPGridView1.DataSourceID = "ExampleSource"; this.SPGridView1.DataBind(); }
  注意:此代码要正常运行,测试用的列表必须有标题和Origin两个字段。
  除了用代码给SPGridView添加字段,适应于GridView的一切手段都是可以应用到SPGridView的,
  比如,你可以添加一个模板字段(TemplateFiled),模板内容当然可以按需控制了。
0
相关文章