學習: 實現動態查詢列表視圖資料)

來源:互聯網
上載者:User

 

 

在實際項目中經常會遇到客戶要求查詢列表視圖要像一般的ASP.NET一樣,如果條件簡單讓他們直接用列表視圖篩選功能就可以了。

如果篩選條件很複雜的話,他們就沒辦法直接用列表視圖篩選功能來實現了,那我們怎麼辦呢?

那我們就開發一個查詢功能的WebPart,讓使用者輸入查詢條件來查詢。以下我把最有用的部分發布出來,相信大家都會構造SPQuery查詢語句。 

 

        private void cmdListFiltes_Click(object sender, System.EventArgs e)
        {
            //定義一個SPView
            SPView mView = null;

            //定義一個需要查詢的ListViewWebPart,
            //其實SPList顯示介面中都是用ListViewWebPart顯示的
            ListViewWebPart lvSelect = null;
           
            //構造SPQuery查詢字串,查詢字串
            string sFiltersQuery = getQueryStr();

            //找出你要查詢的ListViewWebPart
            //當然你在配置WebPart的時候需要輸入查詢的ListViewWebPart的
            foreach (WebPart webPart in WebPartManager.WebParts)
            {
                //判斷是否是ListViewWebPart類型
                if (webPart.GetType() == typeof(ListViewWebPart))
                {
                    if (webPart.UniqueID == SelectListViewWebPartUniqueID)
                    {
                        lvSelect = webPart as ListViewWebPart;
                        break;
                    }
                }
            }

            //關鍵區段
            if (lvSelect != null)
            {
                //你需要查詢的SPList
                SPList list = SPControl.GetContextWeb(this.Context).Lists[listname];
                //給SPView賦值
                mView = list.Views[new Guid(lvSelect.ViewGuid)];
                //查詢之後從那裡來回到那裡去
                sSelectViewOrgQuery = mView.Query;
                //給SPView中
                mView.Query = sFiltersQuery;
                //把SPView的SchemaXml賦給ListViewWebPart的ListViewXml
                lvSelect.ListViewXml = mView.SchemaXml;
                //回到原始狀態,不要改變SPView的SPQuery值
                mView.Query = sSelectViewOrgQuery;
            }
        }

 

希望對大家有所協助。

 

文章來源:http://www.cnblogs.com/SeaBird/archive/2009/11/04/1595641.html

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.