ListViewWebPart和SPGridView用法

ListViewWebPart输出

//protected override void Render(System.Web.UI.HtmlTextWriter writer)
        //{
        //    //SPWeb web = SPContext.Current.Web;
            //SPList list = web.Lists["考勤表"];
            //SPView wpView = list.Views["所有项目"];
            //ListViewWebPart wpListView = new ListViewWebPart();
            //wpListView.ID = "_wpListView";
            //wpListView.ListName = list.ID.ToString("B").ToUpper();
            //wpListView.ViewGuid = wpView.ID.ToString("B").ToUpper();
            //writer.Write(wpListView.GetDesignTimeHtml());
        //}

 SPGridView使用:在使用webpart时,session的值为空;应用程序页的话,就不为空!!

<style type="text/css">
table.ms-listviewtable {
	font-family: verdana,arial,sans-serif;
	font-size:11px;
	color:#333333;
	border-width: 1px;
	border-color: #666666;
	border-collapse: collapse;
}
table.ms-listviewtable th {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #666666;
	background-color: #dedede;
}
table.ms-listviewtable tr:not(:last-child) td {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #666666;
	background-color: #ffffff;
}
.ShowHideSfz{
    border:1px solid blue;
    width:600px;
     padding:10px 13px;
}
.showerrorinfo{
    background:#dedede;
    font-size:x-large;
   
    color:gray;
}
.linkprompt{
    color:red;

}
span.font_size{
    font-size:15px;
}
</style>

   

</asp:Content>

     <span class="font_size"> 请输入身份证号:</span><asp:TextBox ID="txtCardID" runat="server" />
     <asp:Button ID="btnSubmitCardID" runat="server" OnClick="btnSubmitCardID_Click" Text="确定" /><br />
        
    <div id="showerrorinfo" runat="server" class="showerrorinfo"></div>
     <div id="showdzkqview">
     <SharePoint:SPGridView ID="spgv"  DisplayGroupFieldName="true"  runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="3" >
            <AlternatingRowStyle CssClass="ms-alternating" />
            <SelectedRowStyle CssClass="ms-selectednav" Font-Bold="True" />
        </SharePoint:SPGridView>
        <div style="text-align:center">
    <SharePoint:SPGridViewPager OnClickNext="SPGridViewPager1_ClickNext" OnClickPrevious="SPGridViewPager1_ClickPrevious" ID="SPGridViewPager1" runat="server" GridViewId="spgv">    
    </SharePoint:SPGridViewPager></div>
    </div>

 

  protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ShowHideSfzLink();
            }
           
           // InitSPGridViewPager();
        }
        /// <summary>
        /// 身份证关联
        /// </summary>
        public void ShowHideSfzLink()
        {
            string username = SPContext.Current.Web.CurrentUser.Name;
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(SPContext.Current.Web.Url))
                {
                    using (SPWeb web = site.OpenWeb("jyjcsjk"))
                    {
                        SPList lstList = web.Lists["List"];
                        if (lstList == null)
                        {
                            return;
                        }
                        SPQuery query = new SPQuery();
                        query.RowLimit = 1;
                        query.Query = "<Where><And><Eq><FieldRef Name='Title'/><Value Type='Text'>" + username + "</Value></Eq>" +
                            "<IsNull><FieldRef Name='CFIDNumber'/></IsNull></And></Where>";
                        int res = lstList.GetItems(query).Count;
                        if (res < 1)
                        {
                            this.pnlShowHideSfz.Visible = false;
                            return;
                        }
                        this.pnlShowHideSfz.Visible = true;
                    }

                }

            });

        }
        public void InitSPGridViewPager()
        {
            ObjectDataSource odsDataSource = new ObjectDataSource();
            odsDataSource.ID = "ExampleSource";
            odsDataSource.TypeName = this.GetType().FullName + "," + this.GetType().Assembly.FullName;
            odsDataSource.SelectMethod = "GetDataTable";
            Controls.Add(odsDataSource);
            //spgv.FilteredDataSourcePropertyFormat = "{1}='{0}'";
            //spgv.FilteredDataSourcePropertyName = "FilterExpression";
            spgv.EnableViewState = false;

            SPBoundField col = new SPBoundField();
            col.DataField = Info.strFieldTitle;
            //col.SortExpression = Info.strFieldTitle;
            col.HeaderText = "姓名";
            spgv.Columns.Add(col);

            col = new SPBoundField();
            col.DataField = Info.strFieldKqlx;
            col.HeaderText = "考勤类型";
            spgv.Columns.Add(col);

            col = new SPBoundField();
            col.DataField = Info.strFieldLocation;
            col.HeaderText = "场馆名称";
            spgv.Columns.Add(col);
            col = new SPBoundField();
            col.DataField = Info.strFieldCFTheme;
            col.HeaderText = "活动主题";
            spgv.Columns.Add(col);

            col = new SPBoundField();
            col.HeaderText = "IC卡类型";
            col.DataField = Info.strFieldCardType;
            spgv.Columns.Add(col);

            col = new SPBoundField();
            col.HeaderText = "卡号";
            col.DataField = Info.strFieldCardID;
            spgv.Columns.Add(col);
            col = new SPBoundField();

            col.HeaderText = "签到时间";
            col.DataField = Info.strFieldStartTime;
            spgv.Columns.Add(col);
            spgv.ShowHeaderWhenEmpty = true;
            //spgv.AllowFiltering = true;
            //spgv.FilterDataFields = "theme,stage,age,name";
            //spgv.AllowGrouping = true;
            spgv.AllowGroupCollapse = true;
            spgv.AllowSorting = true;

            //spgv.GroupField = "theme";
            //spgv.GroupDescriptionField = "name";
            //spgv.GroupFieldDisplayName = "分组";
            //spgv.GridLines = GridLines.Both;
            spgv.PageSize = 3;
            //绑定数据源
            spgv.DataSourceID = "ExampleSource";
            spgv.DataBind();

        }
       
        public DataTable GetDataTable()//引用不到前台页面的值 如:this.txtCardID为空,是不是异步请求原因
        {
            DataTable dt = null;
            
            //if (this.txtCardID.Text.Length != 18)
            //{
            //    return dt;
            //}
            SPWeb web = SPContext.Current.Web;
            SPList lstkqb = web.Lists["考勤表"];
            string username = SPContext.Current.Web.CurrentUser.Name;


            SPQuery query = new SPQuery();
               
            query.ViewFields = "<FieldRef Name='" + Info.strFieldTitle + "'/>" +
                "<FieldRef Name='" + Info.strFieldKqlx + "'/>" +
                "<FieldRef Name='" + Info.strFieldLocation + "'/>" +
                "<FieldRef Name='" + Info.strFieldCFTheme + "'/>" +
                "<FieldRef Name='" + Info.strFieldCardType + "'/>" +
                "<FieldRef Name='" + Info.strFieldCardID + "'/>" +
                "<FieldRef Name='" + Info.strFieldStartTime + "'/>";
            query.Query = "<Where><And><And>" +
                "<Eq><FieldRef Name='" + Info.strFieldCardType + "'/><Value Type='Text'>身份证</Value>" +
                "</Eq><Neq><FieldRef Name='" + Info.strFieldisExistUser + "'/><Value Type='Text'>1</Value></Neq></And>" +
                "<Eq><FieldRef Name='" + Info.strFieldCardID + "'/><Value Type='Text'>" + Session["cardIdValue"] + "</Value></Eq></And>" +
                "</Where>" +
                "<OrderBy><FieldRef Name='ID' Ascending='FALSE'/></OrderBy>";
            SPListItemCollection cols = lstkqb.GetItems(query);
            dt = cols.GetDataTable();
            
            return dt;
        }

        protected void SPGridViewPager1_ClickNext(object sender, EventArgs e)
        {
            if (!ValidationCardID())
            {
                return;
            }
            Session["cardIdValue"] = txtCardID.Text;
            InitSPGridViewPager();
            this.spgv.DataSourceID = "ExampleSource";
            this.spgv.DataBind();
        }
        /// <summary>
        /// 验证身份证号
        /// </summary>
        /// <returns></returns>
        public bool ValidationCardID()
        {
            if (this.txtCardID.Text.Length != 18)
            {
                this.showerrorinfo.InnerText = "请输入正确的身份证号码!!";
                return false;
            }
            bool ismatch = new System.Text.RegularExpressions.Regex("[1-9]([0-9]{14}|[0-9]{17})").IsMatch(this.txtCardID.Text);
            if (!ismatch)
            {
                this.showerrorinfo.InnerText = "请输入正确的身份证号码!!";
                return false;
            }
            this.showerrorinfo.InnerText = "";
            return true;
        }
        protected void btnSubmitCardID_Click(object sender, EventArgs e)
        {
            if (!ValidationCardID())
            {
                return;
            }
            if(this.pnlShowHideSfz.Visible)
            {
                if (this.chkCardID.Checked)
                {
                    UpdateCardID();
                }
            }
            Session["cardIdValue"] = txtCardID.Text;
            InitSPGridViewPager();
        }
        /// <summary>
        /// 更新身份证号至数据中心
        /// </summary>
        public void UpdateCardID()
        {
            string username = SPContext.Current.Web.CurrentUser.Name;
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite site = new SPSite(SPContext.Current.Web.Url))
                    {
                        using (SPWeb web = site.OpenWeb("jyjcsjk"))
                        {
                            bool flag = web.AllowUnsafeUpdates;
                            web.AllowUnsafeUpdates = true;

                            SPList lst = web.Lists["List"];
                            SPQuery query = new SPQuery()
                            {
                                Query = "<Where><Eq><FieldRef Name='Title'/><Value Type='Text'>" + username + "</Value></Eq></Where>"
                                ,
                                RowLimit = 1
                            };
                            if (lst.GetItems(query).Count > 0)
                            {
                                SPListItem lstitem = lst.GetItems(query)[0];
                                lstitem["CFIDNumber"] = this.txtCardID.Text;
                                lstitem.SystemUpdate();
                                this.pnlShowHideSfz.Visible = false;
                            }
                            web.AllowUnsafeUpdates = flag;
                        }
                    }

                });
            }
            catch (Exception ex)
            {
                this.showerrorinfo.InnerText ="更新身份证号失败!"+ ex.Message;
            }
           
            
        }

        protected void SPGridViewPager1_ClickPrevious(object sender, EventArgs e)
        {
            if(!ValidationCardID())
            {
                return;
            }
            Session["cardIdValue"] = txtCardID.Text;
            InitSPGridViewPager();
            this.spgv.DataSourceID = "ExampleSource";
            this.spgv.DataBind();
        }

 

posted on 2015-09-04 22:28  !无名之辈  阅读(285)  评论(0)    收藏  举报