列表查询WebPart

列表查询WebPart

SmartListSearchWebPart 简单列表查询WebPart.本代码只是一个简单的Demo,代码没有实际的价值,但是很有学习价值. 在项目中可以得到很好的应用!
输入key

Code :

using System; using System.Runtime.InteropServices; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Serialization; using System.Xml;

using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using Microsoft.SharePoint.WebPartPages;

namespace SmartListSearchWebPart {     [Guid("34903418-36da-45cb-ae81-27cd82b628dd")]     public class SmartListSearchWebPart : System.Web.UI.WebControls.WebParts.WebPart     {         public SmartListSearchWebPart()         {             this.ExportMode = WebPartExportMode.All;         }

        private Button btnSearch;         private TextBox tbKey;         /// <summary>         /// create child controls         /// </summary>         protected override void CreateChildControls()         {             btnSearch = new Button();             btnSearch.Text = "查询";             btnSearch.Click += new EventHandler(btnSearch_Click);             this.Controls.Add(btnSearch);

            tbKey = new TextBox();             this.Controls.Add(tbKey);

            base.CreateChildControls();         }

        private SPList List         {             get             {                 return SPContext.Current.List;             }         }         /// <summary>         /// search         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         void btnSearch_Click(object sender, EventArgs e)         {                if (this.tbKey.Text != "")             {                 string cmal = string.Format("<Where><Contains><FieldRef Name='Title' /><Value Type='Text'>{0}</Value></Contains></Where>", this.tbKey.Text.ToString());                 this.SetCurrentListViewSchemaQuery(cmal);             }            

        }         /// <summary>         /// set current list view schema query         /// </summary>         /// <param name="cmal"></param>         private void SetCurrentListViewSchemaQuery(string cmal)         {             if (!string.IsNullOrEmpty(cmal))             {                 string str = "{" +this.List.ID.ToString() +"}";

                                foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in base.Zone.WebParts)                 {                     if (webPart is ListViewWebPart)                     {                         ListViewWebPart listViewWebPart = (ListViewWebPart)webPart;                         if (string.Compare(listViewWebPart.ListName, str, true) != 0)                         {                             continue;                         }

                        if (string.IsNullOrEmpty(cmal))                         {                             listViewWebPart.ListViewXml = this.List.Views[new Guid(listViewWebPart.ViewGuid)].HtmlSchemaXml;

                        }                         else                         {                             XmlDocument xmlDocument = new XmlDocument();                             xmlDocument.LoadXml(listViewWebPart.ListViewXml);                             this.ChangeSchemaXmlCaml(xmlDocument, cmal);                             listViewWebPart.ListViewXml = xmlDocument.InnerXml;                         }                     }                 }             }         }         /// <summary>         /// move where         /// </summary>         /// <param name="q"></param>         /// <returns></returns>         private string GetInnerQuery(string q)         {             XmlDocument docuemnt = new XmlDocument();             docuemnt.LoadXml(q);             return docuemnt.DocumentElement.InnerXml;         }         /// <summary>         /// change schema xml query         /// </summary>         /// <param name="xmlDocument"></param>         /// <param name="query"></param>         private void ChangeSchemaXmlCaml(XmlDocument xmlDocument,string query)         {             if (!string.IsNullOrEmpty(query))             {                 string innerXml = this.GetInnerQuery(query);                 if (innerXml != "")                 {                     XmlNode node = xmlDocument.DocumentElement.SelectSingleNode("Query");                     XmlNode oldChild = node.SelectSingleNode("Where");

                    if (oldChild != null)                     {                         node.RemoveChild(oldChild);                     }

                    XmlNode newChild = xmlDocument.CreateElement("Where");                     newChild.InnerXml = innerXml;                     node.AppendChild(newChild);                     xmlDocument.DocumentElement.SelectSingleNode("ViewEmpty").InnerXml = "<HTML><![CDATA[<font color='red'><b>AA Say:未找到符合查询条件的记录。</b></font>]]></HTML>";                 }

            }         }         /// <summary>         /// render         /// </summary>         /// <param name="writer"></param>         protected override void Render(HtmlTextWriter writer)         {             writer.Write("<table><tr><td>");             writer.Write("关键字:");             tbKey.RenderControl(writer);             btnSearch.RenderControl(writer);             writer.Write("</td></tr></table>");         }     } }

这个webPart 核心就是修改它的Scheam就OK listViewWebPart.ListViewXml = xmlDocument.InnerXml;(主要代码)
jianyi 的文章对我很大帮助。。。希望更多的朋友向建议学习。分享

 
 
« 上一篇:Feature Action List Settings » 下一篇:用友软件工程公司招聘moss
 
SmartListSearchWebPart
简单列表查询WebPart.本代码只是一个简单的Demo,代码没有实际的价值,但是很有学习价值.
在项目中可以得到很好的应用!

输入key

 Code :


using System;
 using System.Runtime.InteropServices;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
 using System.Xml.Serialization;
 using System.Xml;

using Microsoft.SharePoint;
 using Microsoft.SharePoint.WebControls;
 using Microsoft.SharePoint.WebPartPages;

namespace SmartListSearchWebPart
 {
     [Guid("34903418-36da-45cb-ae81-27cd82b628dd")]
     public class SmartListSearchWebPart : System.Web.UI.WebControls.WebParts.WebPart
     {
         public SmartListSearchWebPart()
         {
             this.ExportMode = WebPartExportMode.All;
         }

        private Button btnSearch;
         private TextBox tbKey;
         /// <summary>
         /// create child controls
         /// </summary>
         protected override void CreateChildControls()
         {
             btnSearch = new Button();
             btnSearch.Text = "查询";
             btnSearch.Click += new EventHandler(btnSearch_Click);
             this.Controls.Add(btnSearch);

            tbKey = new TextBox();
             this.Controls.Add(tbKey);

            base.CreateChildControls();
         }

        private SPList List
         {
             get
             {
                 return SPContext.Current.List;
             }
         }
         /// <summary>
         /// search
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         void btnSearch_Click(object sender, EventArgs e)
         {
    
             if (this.tbKey.Text != "")
             {
                 string cmal = string.Format("<Where><Contains><FieldRef Name='Title' /><Value Type='Text'>{0}</Value></Contains></Where>", this.tbKey.Text.ToString());
                 this.SetCurrentListViewSchemaQuery(cmal);
             }
             

        }
         /// <summary>
         /// set current list view schema query 
         /// </summary>
         /// <param name="cmal"></param>
         private void SetCurrentListViewSchemaQuery(string cmal)
         {
             if (!string.IsNullOrEmpty(cmal))
             {
                 string str = "{" +this.List.ID.ToString() +"}";

                
                 foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in base.Zone.WebParts)
                 {
                     if (webPart is ListViewWebPart)
                     {
                         ListViewWebPart listViewWebPart = (ListViewWebPart)webPart;
                         if (string.Compare(listViewWebPart.ListName, str, true) != 0)
                         {
                             continue;
                         }

                        if (string.IsNullOrEmpty(cmal))
                         {
                             listViewWebPart.ListViewXml = this.List.Views[new Guid(listViewWebPart.ViewGuid)].HtmlSchemaXml;

                        }
                         else
                         {
                             XmlDocument xmlDocument = new XmlDocument();
                             xmlDocument.LoadXml(listViewWebPart.ListViewXml);
                             this.ChangeSchemaXmlCaml(xmlDocument, cmal);
                             listViewWebPart.ListViewXml = xmlDocument.InnerXml;
                         }
                     }
                 }
             }
         }
         /// <summary>
         /// move where 
         /// </summary>
         /// <param name="q"></param>
         /// <returns></returns>
         private string GetInnerQuery(string q)
         {
             XmlDocument docuemnt = new XmlDocument();
             docuemnt.LoadXml(q);
             return docuemnt.DocumentElement.InnerXml;
         }
         /// <summary>
         /// change schema xml query 
         /// </summary>
         /// <param name="xmlDocument"></param>
         /// <param name="query"></param>
         private void ChangeSchemaXmlCaml(XmlDocument xmlDocument,string query)
         {
             if (!string.IsNullOrEmpty(query))
             {
                 string innerXml = this.GetInnerQuery(query);
                 if (innerXml != "")
                 {
                     XmlNode node = xmlDocument.DocumentElement.SelectSingleNode("Query");
                     XmlNode oldChild = node.SelectSingleNode("Where");

                    if (oldChild != null)
                     {
                         node.RemoveChild(oldChild);
                     }

                    XmlNode newChild = xmlDocument.CreateElement("Where");
                     newChild.InnerXml = innerXml;
                     node.AppendChild(newChild);
                     xmlDocument.DocumentElement.SelectSingleNode("ViewEmpty").InnerXml = "<HTML><![CDATA[<font color='red'><b>AA Say:未找到符合查询条件的记录。</b></font>]]></HTML>";
                 }

            }
         }
         /// <summary>
         /// render
         /// </summary>
         /// <param name="writer"></param>
         protected override void Render(HtmlTextWriter writer)
         {
             writer.Write("<table><tr><td>");
             writer.Write("关键字:");
             tbKey.RenderControl(writer);
             btnSearch.RenderControl(writer);
             writer.Write("</td></tr></table>");
         }
     }
 }


这个webPart 核心就是修改它的Scheam就OK
 listViewWebPart.ListViewXml = xmlDocument.InnerXml;(主要代码)


jianyi 的文章对我很大帮助。。。希望更多的朋友向建议学习。分享

 

 
分类: SharePoint
标签: MOSS , WebPart
好文要顶             关注我     收藏该文         
        
A   A 关注 - 0 粉丝 - 24        
 
 
+加关注    
0    
0    
 
 
 
posted @ 2017-09-11 15:54  sky20080101  阅读(107)  评论(0)    收藏  举报