国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

親密接觸ASP.Net(13)

2024-07-10 12:55:24
字體:
來源:轉載
供稿:網友
個性化的分頁實現

我們前面講的分頁,只不過是通過修改datagrid的屬性來實現分頁,這樣有這樣的好處
,最大的就是簡單,呵呵,根本不用操心,分頁是如何產生的。

但是它同樣有缺點,不能按照我們想像的產生各種我們需要的樣式。

沒有辦法,想個性化功能,只有自已動手來做了,呵呵。

我們一步步的來,首先是導入需要的命名空間。下面的例子,其實也是我從國外找來的
,再加上點個人的東東,再漢化,呵呵。今天心情很好,我連標簽色彩都給大家顯示出
來了。呵呵,更利于大家看程序。

<%@ page language="c#" %>
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.sql" %>

我們先看看,我們的web控件是哪些,再看看代碼是怎么寫的,這樣比較好:)

<body>

<h3><font face="verdana">個性化的分頁實例^&^</font></h3>

<form runat=server>

<asp:datagrid id="mydatagrid" runat="server"
allowpaging="true"
pagesize="10"
pagerstyle-mode="numericpages"
pagerstyle-horizontalalign="right"
onpageindexchanged="mydatagrid_page"
bordercolor="black"
borderwidth="1"
gridlines="both"
cellpadding="3"
cellspacing="0"
font-name="verdana"
font-size="8pt"
headerstyle-backcolor="#aaaadd"
alternatingitemstyle-backcolor="#eeeeee"
autogeneratecolumns="false"

>
<property name="columns">
<asp:boundcolumn headertext="工作室成員" datafield="enter_id" />
<asp:boundcolumn headertext="登陸時間" datafield="enter_time" />
</property>
</asp:datagrid>

<p>
<asp:linkbutton id="btnfirst" runat="server"
text="首頁"
commandargument="0"
forecolor="navy"
font-name="verdana" font-size="8pt"
onclick="pagerbuttonclick"
/>

<asp:linkbutton id="btnprev" runat="server"
text="前頁"
commandargument="prev"
forecolor="navy"
font-name="verdana" font-size="8pt"
onclick="pagerbuttonclick"
/>

<asp:linkbutton id="btnnext" runat="server"
text="后頁"
commandargument="next"
forecolor="navy"
font-name="verdana" font-size="8pt"
onclick="pagerbuttonclick"
/>


<asp:linkbutton id="btnlast" runat="server"
text="末頁"
commandargument="last"


forecolor="navy"
font-name="verdana" font-size="8pt"
onclick="pagerbuttonclick"
/>


<p>
<asp:checkbox id="chk1" runat="server"
text="顯示內置的頁數"
font-name="verdana"
font-size="8pt"
autopostback="true"
/>

<p>
<table bgcolor="#eeeeee" cellpadding="6"><tr><td nowrap><font face="verdana"
size="-2">

<asp:label id="lblcurrentindex" runat="server" /><br>
<asp:label id="lblpagecount" runat="server" /><br>

</font></td></tr></table>
</form>

</body>

從上面的例子我們可以看出點擊linkbutton控件onclick觸發的是pagebuttonclick事件,
datagrid頁面onpageindexchanged改變觸發的是mydatagrid_page事件,我們以后就是就
是要編寫這兩件事件的代碼

下面是先要查詢的數據庫的信息,用一個函數表示,因為經常用到:),我打開的表,呵
呵,是我們工作室管理區的登陸記錄表(哈又賣了點我們工作室的秘密給大家)

icollection createdatasource()
{
/*
讀取數據庫的信息,獲得dataview
*/
sqlconnection myconnection = new
sqlconnection("server=localhost;uid=sa;pwd=123456;database=aspcn");
sqldatasetcommand mydatasetcommand = new sqldatasetcommand("select * from
admin_enter order by enter_time desc",myconnection);
dataset ds= new dataset();
mydatasetcommand.filldataset(ds,"admin_enter");
return ds.tables["admin_enter"].defaultview;
}

然后中是page_load函數,在這里主要是判斷一下是否顯示datagrid自帶的那些分頁數字
,使用的是pagestyle的visible屬性:

void page_load(object sender, eventargs e)
{
//判斷是否隱藏pagerstyle-mode
if (chk1.checked)
{
mydatagrid.pagerstyle.visible=true;
}
else
{
mydatagrid.pagerstyle.visible=false;
}

bindgrid();
}

下面是處理點擊事件的pagerbuttonclick,這是我們的核心部分,其實我們操作的也只
是datagrid的currentpageindex屬性。如果currentpageindex小于pagecount則有下一頁
,如果currentpageindex大于0則表示有前一頁。

void pagerbuttonclick(object sender, eventargs e)
{
//獲得linkbutton的參數值
string arg = ((linkbutton)sender).commandargument;

switch(arg)
{
case ("next"):
if (mydatagrid.currentpageindex < (mydatagrid.pagecount - 1))
mydatagrid.currentpageindex ++;
break;
case ("prev"):
if (mydatagrid.currentpageindex > 0)
mydatagrid.currentpageindex --;
break;
case ("last"):
mydatagrid.currentpageindex = (mydatagrid.pagecount - 1);
break;
default:
//本頁值
mydatagrid.currentpageindex = arg.toint32();
break;
}
bindgrid();
}

下面是mydatagrid_page,主要操作是調用bindgrid函數,以將數據交給datagrid顯示:

void mydatagrid_page(object sender, datagridpagechangedeventargs e)
{
//處理按下數字的方法


bindgrid();
}

最后是兩個函數,他們的作用,我都注釋了:)

void bindgrid()
{
//將dataview綁定到datagrid上去
mydatagrid.datasource = createdatasource();
mydatagrid.databind();
showstats();
}

void showstats()
{
//顯示頁面信息
lblcurrentindex.text = "當前頁數為: " +
((int)mydatagrid.currentpageindex+1);
lblpagecount.text = "總頁數是: " + mydatagrid.pagecount;
}

到此為止,我們的個性化頁面已經完成了(全部代碼和顯示看一下節),我們總的思想就
是使用linkbutton控件做為翻頁的標幟,通過判斷linkbutton的commandargument值,操
作datagrid的currentpageindex屬性,以達到翻頁的效果。

如果大家在本節中看不懂結構,請參看下一節的全部代碼以及示例。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孝义市| 海南省| 城固县| 盐山县| 手游| 湘西| 枞阳县| 长丰县| 贵定县| 定远县| 福清市| 新巴尔虎右旗| 宜川县| 运城市| 密山市| 磐石市| 烟台市| 江陵县| 兴仁县| 武功县| 岳阳县| 呼玛县| 三原县| 黑山县| 迁西县| 桂阳县| 泸水县| 樟树市| 雷山县| 平乡县| 正定县| 临湘市| 凤山县| 汉阴县| 息烽县| 当雄县| 宜黄县| 峨山| 钟祥市| 麻江县| 阿克苏市|