如何动态修改列表视图定义
来源:优易学  2011-12-8 18:59:15   【优易学:中国教育考试门户网】   资料下载   IT书店
  今天被人问到:在MOSS中,有一个列表,我们希望根据用的特征动态切换内容显示。这个筛选条件很复杂,我们没有办法直接使用视图的筛选来实现。应该怎麽办呢?
  我的解决方案如下:
  第一步:webpart的部分
  using System;
  using System.Runtime.InteropServices;
  using System.Web.UI;
  using System.Web.UI.WebControls.WebParts;
  using System.Xml.Serialization;
  using Microsoft.SharePoint;
  using Microsoft.SharePoint.WebControls;
  using Microsoft.SharePoint.WebPartPages;
  using System.Web;
  namespace SPViewPart
  {
  [Guid("3179933a-c04a-432d-a6f6-4e9e41cac3f2")]
  public class SPViewPart : System.Web.UI.WebControls.WebParts.WebPart
  {
  public SPViewPart()
  {
  this.ExportMode = WebPartExportMode.All;
  }
  protected override void Render(HtmlTextWriter writer)
  {
  // TODO: add custom rendering code here.
  SPWeb web = SPContext.Current.Web;
  SPList list = web.Lists["任务"];
  SPView view = list.Views["所有任务"];
  writer.Write(HttpUtility.HtmlEncode(view.Query));//这里只是为了调试,显示出来这个内容,完全可以不显示的
  }
  protected override void OnInit(EventArgs e)
  {
  SPWeb web = SPContext.Current.Web;
  web.AllowUnsafeUpdates = true;
  SPList list = web.Lists["任务"];
  SPView view = list.Views["所有任务"];
  string query = "<OrderBy><FieldRef Name=\"ID\" /></OrderBy><Where><Eq><FieldRef Name=\"Title\" /><Value Type=\"Text\">王磊</Value></Eq></Where>";//我这里是直接写死的,你可以动态构造这一串东西
  view.Query = query;
  view.Update();
  list.Update();
  }
  }
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训