一个通用WebPart查询列表

 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);
                }
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值