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();
}
浙公网安备 33010602011771号