在實際開發中,常常會遇到很多資訊,由于字段比較多,常常用GridView或RadGrid等一些資料顯示控件直接一行顯示,效果極差(需要拖動滾動條,比較麻煩)。
是以自然想到定制模闆用table來實作:
還是先上代碼,然後再分析吧。
<asp:FormView ID="fvBaseInfo" runat="server" Width="100%" AllowPaging="true"
onpageindexchanging="fvBaseInfo_PageIndexChanging">
<ItemTemplate>
<table width="100%" class="Mtable">
<tr>
<td colspan="8" align="center"><font color="red" size="4">未繳費機關基本資訊表</font></td>
</tr>
<td align="right">審批機關:</td>
<td align="center">
<asp:Label ID="Label1" runat="server" Text='<%# Eval("SPJG1") %>' ForeColor="ButtonShadow"></asp:Label>
</td>
<td align="right">監督管理機關:</td>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("JDGLJG1") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">取水權人名稱:</td>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("QSQRMC") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">法人代表:</td>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("FDDBR") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">職務:</td>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("ZW") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">機關類型:</td>
<asp:Label ID="Label6" runat="server" Text='<%# Eval("DWLX") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">行業類别:</td>
<asp:Label ID="Label7" runat="server" Text='<%# Eval("HYLB") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">取水申請日期:</td>
<asp:Label ID="Label8" runat="server" Text='<%# this.GetSubString(Eval("SQQSQSRQ").ToString()) %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">許可證有效期:</td>
<asp:Label ID="Label9" runat="server" Text='<%# this.GetSubString(Eval("XKZYXQ").ToString()) %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">通訊位址:</td>
<asp:Label ID="Label10" runat="server" Text='<%# Eval("TXDZ") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">郵政編碼:</td>
<asp:Label ID="Label11" runat="server" Text='<%# Eval("YZBM") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">聯系人:</td>
<asp:Label ID="Label12" runat="server" Text='<%# Eval("LXR") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">工作部門:</td>
<asp:Label ID="Label13" runat="server" Text='<%# Eval("GZBM") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">職務(職稱):</td>
<asp:Label ID="Label14" runat="server" Text='<%# Eval("ZWZC") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">聯系電話:</td>
<asp:Label ID="Label15" runat="server" Text='<%# Eval("LXDH1") %>' ForeColor="ButtonShadow"></asp:Label>
<td align="right">電子郵箱:</td>
<asp:Label ID="Label16" runat="server" Text='<%# Eval("DZXX1") %>' ForeColor="ButtonShadow"></asp:Label>
</table>
</ItemTemplate>
<EmptyDataTemplate>
<table width="100%">
<tr>
<td align="center"><font color="red" size="3">無任何資訊</font></td>
</tr>
</table>
</EmptyDataTemplate>
</asp:FormView>
以上是在FormView裡的模闆列裡放置了一個table,用來顯示較為多的字段資訊,提供浏覽,這時就涉及到如果擷取到的資訊數量特别多的話,分頁該如何實作?
...
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
VSDataTable1 = new DataTable(); //未繳費機關基本資訊
}
}
.
protected void btnQuery_Click(object sender, EventArgs e)
{
string strSQL ="select * from QSXK_DJB1";
DM_Water dm = new DM_Water();
DataSet ds = dm.getsql(strSQL);
this.fvBaseInfo.DataSource = ds;
this.fvBaseInfo.DataBind();
ViewState["wjfdwjbxx"] = ds.Tables[0];
}
//FormView控件分頁
protected void fvBaseInfo_PageIndexChanging(object sender, FormViewPageEventArgs e)
//分頁代碼
this.fvBaseInfo.DataSource = VSDataTable1;
this.fvBaseInfo.PageIndex = e.NewPageIndex;
this.fvBaseInfo.DataBind();
/// <summary>
/// 存放在ViewState的DataTable 未繳費機關基本資訊表
/// </summary>
private DataTable VSDataTable1
get { return ViewState["wjfdwjbxx"] as DataTable; }
set { ViewState["wjfdwjbxx"] = value; }
/// 普通的綁定資料
private void PageDataBind()
fvBaseInfo.DataSource = VSDataTable1;
fvBaseInfo.DataBind();
/// 綁定資料加換頁
/// <param name="getPageIndex">新頁面Index</param>
private void PageDataBind(Int32 getPageIndex)
fvBaseInfo.PageIndex = getPageIndex;
這裡比較重要的就是利用ViewState來儲存資料源資訊,以供分頁來使用,效果圖如下位址所示:
<a href="http://hi.csdn.net/space-95339-do-album-picid-551779.html">http://hi.csdn.net/space-95339-do-album-picid-551779.html</a>
這裡隻是個人對于DataTable分頁的一種實作方案,如有不妥之處,敬請指正,大家一起交流學習。