列表查询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 的文章对我很大帮助。。。希望更多的朋友向建议学习。分享
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 的文章对我很大帮助。。。希望更多的朋友向建议学习。分享



浙公网安备 33010602011771号