public partial class CommonList : System.Web.UI.UserControl
{
#region[Webpart配置属性]
/// <summary>
/// 站点名称
/// </summary>
private string _webName = "moss";
[Personalizable]
[WebBrowsable]
[WebDisplayName("站点名称")]
[Category("自定义属性")]
public string WebName
{
get { return _webName; }
set { _webName = value; }
}
/// <summary>
/// 列表类型
/// </summary>
public enum selecttype { List, Documentation }
private selecttype _selecttype = selecttype.List;
[Personalizable]
[WebBrowsable]
[WebDisplayName("列表类型")]
public selecttype SelectType
{
get { return _selecttype; }
set { _selecttype = value; }
}
/// <summary>
/// 列表名称
/// </summary>
private string _listName = "请输入列表名称";
[Personalizable]
[WebBrowsable]
[WebDisplayName("列表名称")]
[Category("自定义属性")]
public string ListName
{
get { return _listName; }
set { _listName = value; }
}
/// <summary>
/// 显示列表数据行数
/// </summary>
private int _datarow = 6;
[Personalizable]
[WebBrowsable]
[WebDisplayName("显示行数:")]
public int DataRow
{
get { return _datarow; }
set { _datarow = value; }
}
/// <summary>
/// 字符串的长度
/// </summary>
private int _fieldcount = 25;
[Personalizable]
[WebBrowsable]
[WebDisplayName("字符串长度:")]
public int FieldCount
{
get { return _fieldcount; }
set { _fieldcount = value; }
}
/// <summary>
/// 显示数据的上限
/// </summary>
private uint limit = 5;
[Personalizable]
[WebBrowsable]
[WebDisplayName("显示上限")]
[Category("自定义属性")]
public uint Limit
{
get { return limit; }
set { limit = value; }
}
/// <summary>
/// New的有效期
/// </summary>
private int _showdays = 7;
[Personalizable]
[WebBrowsable]
[WebDisplayName("New的有效期(天):")]
public int ShowDays
{
get { return _showdays; }
set { _showdays = value; }
}
/// <summary>
/// 筛选条件
/// </summary>
private bool itemIndex;
[Personalizable]
[WebBrowsable]
[WebDisplayName("筛选条件")]
[Category("自定义属性")]
public bool ItemIndex
{
get { return itemIndex; }
set { itemIndex = value; }
}
/// <summary>
/// GridView样式
/// </summary>
private string _gridViews;
[Personalizable]
[WebBrowsable]
[WebDisplayName("控件样式")]
[Category("自定义属性")]
public string GridViews
{
get { return _gridViews; }
set { _gridViews = value; }
}
/// <summary>
/// HyperLink样式
/// </summary>
private string _hyperLinks;
[Personalizable]
[WebBrowsable]
[WebDisplayName("文字链接样式")]
[Category("自定义属性")]
public string HyperLinks
{
get { return _hyperLinks; }
set { _hyperLinks = value; }
}
/// <summary>
/// 更多链接
/// </summary>
private string link;
[Personalizable]
[WebBrowsable]
[WebDisplayName("更多链接")]
[Category("自定义属性")]
public string Link
{
get { return link; }
set { link = value; }
}
/// <summary>
/// 表格样式
/// </summary>
private string tables;
[Personalizable]
[WebBrowsable]
[WebDisplayName("表格样式")]
[Category("自定义属性")]
public string Tables
{
get { return tables; }
set { tables = value; }
}
/// <summary>
/// 标题
/// </summary>
private string titleName;
[Personalizable]
[WebBrowsable]
[WebDisplayName("标题")]
[Category("自定义属性")]
public string TitleName
{
get { return titleName; }
set { titleName = value; }
}
/// <summary>
/// 排序条件
/// </summary>
public enum DateTimeType { Modified, Created }
private DateTimeType _selectdttype = DateTimeType.Created;
[Personalizable]
[WebBrowsable]
[WebDisplayName("展示字段:")]
[WebDescription("默认是展示“创建时间”,其次是“修改时间”!")]
public DateTimeType SelectDateTimeType
{
get { return _selectdttype; }
set { _selectdttype = value; }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//初始化指定一个网站集对象
using (SPSite spsite = new SPSite("你的网站集对象"))
{
//返回指定的网站对象
using (SPWeb myweb = spsite.OpenWeb(WebName))
{
//指定列表对象返回一个列表集对象
SPList mylist = myweb.Lists[ListName];
//创建查询对象,设置查询条件(默认按创建时间排倒序)
SPQuery query = new SPQuery();
if (ItemIndex != true)
{
query.Query = "<OrderBy><FieldRef Name='" + SelectDateTimeType + "' Ascending='FALSE'/></OrderBy>";
}
else
{
query.Query = "<OrderBy><FieldRef Name='" + SelectDateTimeType + "' Ascending='FALSE'/></OrderBy><Where><Eq><FieldRef Name='_ModerationStatus'></FieldRef><Value Type='Text'>已批准</Value></Eq></Where>";
}
//设置一个限定的筛选数返回给结果集的一个数量
query.RowLimit = limit;
//根据条件筛选查询返回一个集合
SPListItemCollection items = mylist.GetItems(query);
DataTable dt = new DataTable();
dt.Columns.Add("Title");
dt.Columns.Add("Url");
dt.Columns.Add("Ntitle");
string listUrl = mylist.DefaultView.Url.Substring(0, mylist.DefaultView.Url.LastIndexOf("/"));
string documentUrl = mylist.RootFolder.Url;
string newimg = "";
//遍历列表对象中的一个列表项或一行
foreach (SPListItem item in items)
{
DataRow row = dt.NewRow();
DateTime newDateTime = Convert.ToDateTime(item["创建时间"].ToString());
if (DateTime.Compare(newDateTime.AddDays(ShowDays).Date, System.DateTime.Now.Date) >= 0)
{
newimg = "<img src='' border='0' style='padding-left:2px' />";//判定是否是最新记录
}
//判断列表的类型
if (SelectType == selecttype.List)
{
row["Title"] = item["Title"].ToString() + newimg;
row["Ntitle"] = item["Title"].ToString();
row["Url"] = myweb.Url + "/" + listUrl + "/DispForm.aspx?ID=" + item.ID.ToString() + "&Source=" + System.Web.HttpUtility.UrlEncode(Page.Request.Url.ToString());
}
else
{
row["Title"] = item["FileLeafRef"].ToString().Substring(0, item.Name.IndexOf(".")) + newimg;
row["Ntitle"] = item["FileLeafRef"].ToString();
row["Url"] = myweb.Url + "/" + documentUrl + "/" + item.File.Name;
}
dt.Rows.Add(row);
//判断
if (DataRow == 0) DataRow = 5;
if (FieldCount == 0) FieldCount = 15;
//判断显示文字的长度
if (row["Title"].ToString().Length >= FieldCount)
{
row["Title"] = row["Title"].ToString().Substring(0, FieldCount) + "....";
}
}
this.gvInformation.DataSource = dt;
this.gvInformation.DataBind();
for (int i = 0; i <= gvInformation.Rows.Count - 1; i++)
{
if (dt.Rows.Count > 0)
{
HyperLink hl = (HyperLink)gvInformation.Rows[i].FindControl("lnkItem");
hl.Attributes.Add("title", dt.Rows[i]["Ntitle"].ToString());
}
}
}
}
});
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
}
}