zoukankan      html  css  js  c++  java
  • WSS3.0开发过滤列表内容(1)

    WSS3.0中,过滤列表内容,可以采用以下方法:
    1)采用视图,视图中配置过滤条件
    2)开发过滤器WebPart,(见这篇文章:编写过滤器WebPart--过滤列表内容)--但是过滤器只能做到精确匹配,无法做模糊查询,大于,小于的限制。
    3)开发一个查询webpart,提供CAML查询语句,把这个webpart跟列表放在一起,由它主动控制当前列表。这里就介绍这种方法。
    wss的列表其实是一个webpart:ListViewWebPart,我们用SPD打开一个AllItems.aspx页面,转到Code模式,就可以看到ListViewWebPart,注意
    ListViewWebPart一个很重要的属性:ListViewXml,就是包含着乱七八糟字符的那个,这是Html编码后的属性值,ListViewXml控制着ListViewWebPart的
    显示,包括要输出的字段,查询条件,排序,只要控制ListViewXml就可以控制ListViewWebPart的输出。
    那么,怎么做呢?
    看以下的示例代码
    public class CamlFilterWebPart:WebPart
    {
    private string _Caml;
    [Personalizable(PersonalizationScope.Shared)]
    [WebBrowsable]
    public string Caml
    {
    set{_Caml=value;}
    get{return _Caml;}
    }
    protected override void OnLoad(EventArgs e)
    {
       base.OnLoad(e);       
       if( String.IsNullOrEmtpty(Caml) ) return ;
       try{
          foreach (WebPart wp in this.Zone.WebParts)
          {
                if (wp is Microsoft.SharePoint.WebPartPages.ListViewWebPart) //首先找到列表webpart
                 {
                 Microsoft.SharePoint.WebPartPages.ListViewWebPart listWp =
                                 (Microsoft.SharePoint.WebPartPages.ListViewWebPart)wp;
                 XmlDocument doc = new XmlDocument();
                 doc.LoadXml(istWp.ListViewXml);
                 XmlNode queryNode = doc.DocumentElement.SelectSingleNode("Query");
                 queryNode.InnerXml = this.
                 listWp.ListViewXml = doc.InnerXml; //替换列表显示的Schema
                 }
           }

        }catch(Exception ex)
        {
            this.Controls.Add(new LiteralControl(ex.Message));
        }
    }
    }

    CamlFilterWebPart有一个可设计的属性Caml,可以存放查询条件。
    CamlFilterWebPart加载的时候,自动获取同一个Zone的ListViewWebPart控制它的查询。
    基于这个思路,我们可以作出很强大的查询控件,提供任意的查询条件来控制列表!
    下一篇将继续对CamlFilterWebPart进行扩展...

    后记:
    当列表连接了其他webpart是,这个方法会失效,列表总是会按照视图的查询条件来显示。
    要解决这个问题,强制清空列表WebPart的视图属性即可:
    listWp.ViewGuid=""';



  • 相关阅读:
    查找 Search
    [HEOI2016/TJOI2016]排序
    [SDOI2011\]染色
    [构造题选讲]
    [LNOI2014]LCA
    [POI2013]LUKTriumphal arch
    java取得某月最后一天
    设置上网代理服务器
    Richfaces改变我的编程方式
    Richfaces Style
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/1034505.html
Copyright © 2011-2022 走看看