DataList控件分页
生活随笔
收集整理的這篇文章主要介紹了
DataList控件分页
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
實(shí)現(xiàn)了對(duì)DataList的分頁(yè) HTML控件的值需要轉(zhuǎn)換web應(yīng)用程序就可以取到了?
??1?/**////?<summary>
??2????????///?當(dāng)前頁(yè)數(shù)
??3????????///?</summary>
??4????????int?CurrentPage;
??5????????/**////?<summary>
??6????????///?每頁(yè)條數(shù)
??7????????///?</summary>
??8????????int?PageSize;
??9????????/**////?<summary>
?10????????///?總頁(yè)數(shù)
?11????????///?</summary>
?12????????int?PageCount;
?13????????/**////?<summary>
?14????????///?總條數(shù)
?15????????///?</summary>
?16????????int?RecordCount;
?17
?18????????/**////?<summary>
?19????????///?頁(yè)面首次加載
?20????????///?</summary>
?21????????///?<param?name="sender">發(fā)送對(duì)象</param>
?22????????///?<param?name="e">事件參數(shù)</param>
?23????????protected?void?Page_Load(object?sender,?EventArgs?e)
?24????????{
?25????????????PageSize?=?2;//每頁(yè)數(shù)據(jù)記錄
?26
?27????????????if?(!IsPostBack)
?28????????????{
?29????????????????CurrentPage?=?0;//當(dāng)前頁(yè)習(xí)慣設(shè)為0
?30????????????????ViewState["PageIndex"]?=?0;//頁(yè)索引也設(shè)為0
?31
?32????????????????//計(jì)算總共有多少記錄
?33????????????????RecordCount?=?CalculateRecord();
?34
?35????????????????//計(jì)算總共有多少頁(yè)
?36????????????????if?(RecordCount?%?PageSize?==?0)
?37????????????????{
?38????????????????????PageCount?=?RecordCount?/?PageSize;
?39????????????????}
?40????????????????else
?41????????????????{
?42????????????????????PageCount?=?RecordCount?/?PageSize?+?1;
?43????????????????}
?44
?45????????????????this.TotalLbl.Text?=?PageCount.ToString();//顯示總頁(yè)數(shù)
?46????????????????ViewState["PageCount"]?=?PageCount;
?47
?48????????????????this.DataListBind();
?49????????????}
?50????????}
?51
?52
?53????????/**////?<summary>
?54????????///?計(jì)算記錄數(shù)
?55????????///?</summary>
?56????????///?<returns></returns>
?57????????private?int?CalculateRecord()
?58????????{
?59????????????try
?60????????????{
?61????????????????int?recordCount;
?62????????????????SqlConnection?con?=?new?SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());
?63????????????????con.Open();
?64
?65????????????????string?sql?=?"select?count(*)?as?count?from?cps_adinfo";
?66????????????????SqlCommand?cmd?=?new?SqlCommand(sql,?con);
?67????????????????SqlDataReader?sdr?=?cmd.ExecuteReader();
?68
?69????????????????if?(sdr.Read())
?70????????????????{
?71????????????????????recordCount?=?Int32.Parse(sdr["count"].ToString());
?72????????????????}
?73????????????????else
?74????????????????{
?75????????????????????recordCount?=?0;
?76????????????????}
?77
?78????????????????sdr.Close();
?79????????????????con.Close();
?80
?81????????????????return?recordCount;
?82????????????}
?83
?84????????????catch?(Exception?ex)
?85????????????{
?86????????????????throw?new?Exception(ex.Message);
?87????????????}
?88????????}
?89
?90
?91????????/**////?<summary>
?92????????///?將數(shù)據(jù)綁定到Datalist控件
?93????????///?</summary>
?94????????public?void?DataListBind()
?95????????{
?96????????????try
?97????????????{
?98????????????????int?StartIndex?=?CurrentPage?*?PageSize;//設(shè)定導(dǎo)入的起終地址
?99
100????????????????string?sql?=?"select?*?from?cps_adinfo";
101
102????????????????DataSet?ds?=?new?DataSet();
103????????????????SqlConnection?con?=?new?SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString());
104????????????????con.Open();
105
106????????????????SqlDataAdapter?sda?=?new?SqlDataAdapter(sql,?con);
107????????????????//Fill方法的第一次重載
108????????????????sda.Fill(ds,?StartIndex,?PageSize,?"cps_adinfo");
109
110????????????????this.TextDataList.DataSource?=?ds.Tables["cps_adinfo"].DefaultView;
111????????????????this.TextDataList.DataBind();
112????????????????this.PreviousLB.Enabled?=?true;
113????????????????this.NextLB.Enabled?=?true;
114????????????????if?(CurrentPage?==?(PageCount?-?1))?this.NextLB.Enabled?=?false;//當(dāng)為最后一頁(yè)時(shí),下一頁(yè)鏈接按鈕不可用
115????????????????if?(CurrentPage?==?0)?this.PreviousLB.Enabled?=?false;//當(dāng)為第一頁(yè)時(shí),上一頁(yè)按鈕不可用
116????????????????this.CurrentLbl.Text?=?(CurrentPage?+?1).ToString();//當(dāng)前頁(yè)數(shù)
117
118????????????}
119
120????????????catch?(Exception?ex)
121????????????{
122????????????????throw?new?Exception(ex.Message);
123????????????}
124????????}
125
126????????/**////?<summary>
127????????///?按鈕點(diǎn)擊事件
128????????///?</summary>
129????????///?<param?name="sender"></param>
130????????///?<param?name="e"></param>
131????????public?void?LinkButton_Click(Object?sender,?CommandEventArgs?e)
132????????{
133????????????CurrentPage?=?Int32.Parse(ViewState["PageIndex"].ToString());//獲得當(dāng)前頁(yè)索引
134????????????PageCount?=?Int32.Parse(ViewState["PageCount"].ToString());//獲得總頁(yè)數(shù)
135
136????????????string?cmd?=?e.CommandName;?//判斷cmd,以判定翻頁(yè)方向
137????????????switch?(cmd)
138????????????{
139????????????????case?"prev"://上一頁(yè)
140????????????????????if?(CurrentPage?>?0)?CurrentPage--;
141????????????????????break;
142
143????????????????case?"next":
144????????????????????if?(CurrentPage?<?(PageCount?-?1))?CurrentPage++;//下一頁(yè)
145????????????????????break;
146
147????????????????case?"first"://第一頁(yè)
148????????????????????CurrentPage?=?0;
149????????????????????break;
150
151????????????????case?"end"://最后一頁(yè)
152????????????????????CurrentPage?=?PageCount?-?1;
153????????????????????break;
154
155????????????????case?"jump"://跳轉(zhuǎn)到第幾頁(yè)
156????????????????????if?(this.TextBox1.Value.Trim()?==?""
157????????????????????????||?Int32.Parse(this.TextBox1.Value.Trim())?>?PageCount
158????????????????????????||?Int32.Parse(this.TextBox1.Value.Trim())?==?0)
159??????????????????????
160????????????????????{
161????????????????????????return;
162????????????????????}
163????????????????????else
164????????????????????{
165????????????????????????CurrentPage?=?Int32.Parse(this.TextBox1.Value.ToString())?-?1;
166????????????????????????break;
167????????????????????}
168????????????}
169????????????ViewState["PageIndex"]?=?CurrentPage;//獲得當(dāng)前頁(yè)
170????????????this.DataListBind();
171????????????
172????????}??
分頁(yè)跳轉(zhuǎn)時(shí)做了判斷 不會(huì)報(bào)異常了
下面是設(shè)計(jì)頁(yè)
Code
?1??<asp:DataList?ID="TextDataList"?runat="server"?Width="100%"?DataKeyField="adid"?EnableViewState="False"
?2????????????????????CssClass="pic"?Font-Overline="False">
?3????????????????????<ItemTemplate>
?4????????????????????????<p?class="piczt">
?5????????????????????????????文字鏈內(nèi)容:
?6????????????????????????????<asp:Label?ID="lal"?runat="server"?Text='<%#?Eval("adtitle")?%>'></asp:Label><br?/>
?7????????????????????????</p>
?8???????????????????????????????????????????????<div?class="picco">
?9????????????????????????????<p?class="picco1">
10?????????????????????????????????<asp:TextBox?ID="txtHtmlCode"?TextMode="MultiLine"?Rows="3"?Columns="40"?Text='<%#?Eval("htmlcode")?%>'
11????????????????????????????????????????????runat="server"?ReadOnly="true"?EnableViewState="false"></asp:TextBox>
12????????????????????????????</p>
13????????????????????????????<p?class="picco2">
14????????????????????????????????<asp:TextBox?ID="txtForumCode"?TextMode="MultiLine"?Rows="3"?Columns="40"?Text='<%#?Eval("forumcode")?%>'
15????????????????????????????????????????????runat="server"?ReadOnly="true"?EnableViewState="false"></asp:TextBox>
16?????????????????????????????</p>
17????????????????????????</div>
18????????????????????????<div?class="picco">
19????????????????????????????<p?class="picco1">
20?????????????????????????????<input?name="button1"?type="button"??class="an2"?value="復(fù)制廣告代碼"?onclick="setTxt('<%#?Eval("htmlcode")?%>')"/>
21????????????????????????????????????復(fù)制廣告代碼</button>
22????????????????????????????</p>
23????????????????????????????<p?class="picco2">
24????????????????????????????????<input?name="button1"?type="button"?class="an2"?value="復(fù)制論壇代碼"?onclick="setTxt('<%#?Eval("forumcode")?%>')"/>
25????????????????????????????????????復(fù)制論壇代碼</button>
26????????????????????????????</p>
27????????????????????????</div>
28????????????????????????<p?class="piczt">
29????????????????????????????產(chǎn)品名稱(chēng):鞋?產(chǎn)品ID:123456789</p>
30????????????????????????<p?class="piczt">
31????????????????????????????提成比例:10%</p>
32????????????????????????<p?class="piczt">
33????????????????????????????<span?class="zi2">注意:</span>?您的聯(lián)盟?ID,?abcdef?,?已經(jīng)包含在代碼中</p>
34????????????????????</ItemTemplate>
35????????????????????<ItemStyle?Width="100%"?/>
36????????????????</asp:DataList>
37????????????????<div?class="page">
38????????????????????共<asp:Label?ID="TotalLbl"?runat="server"></asp:Label>頁(yè),?當(dāng)前第<asp:Label?ID="CurrentLbl"
39????????????????????????runat="server"></asp:Label>頁(yè)
40????????????????????<asp:LinkButton?ID="FirstLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="first"
41????????????????????????Font-Overline="False">[?首頁(yè)?|?</asp:LinkButton>
42????????????????????<asp:LinkButton?ID="PreviousLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="prev"
43????????????????????????Font-Overline="False">上一頁(yè)?|?</asp:LinkButton>
44????????????????????<asp:LinkButton?ID="NextLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="next"
45????????????????????????Font-Overline="False">下一頁(yè)?|?</asp:LinkButton>
46????????????????????<asp:LinkButton?ID="EndLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="end"
47????????????????????????Font-Bold="False"?Font-Overline="False">末頁(yè)?]</asp:LinkButton>
48????????????????????<asp:LinkButton?ID="JumpLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="jump"
49????????????????????????Font-Overline="False">跳到</asp:LinkButton>
50????????????????????<input?id="TextBox1"?runat="server"?type="text"?name="TextBox1"?style="width:?30px"
51????????????????????????onkeyup="value=value.replace(/[^\d]/g,'')"?/>
52????????????????</div>
53
54功能上除了分頁(yè) 還有一個(gè)復(fù)制文本框的方法
??? <script type="text/javascript">
??????? function setTxt(obj) {
??????????? window.clipboardData.setData('text', obj);
??????????? alert("復(fù)制成功!");
??????? }
??? </script>
??1?/**////?<summary>
??2????????///?當(dāng)前頁(yè)數(shù)
??3????????///?</summary>
??4????????int?CurrentPage;
??5????????/**////?<summary>
??6????????///?每頁(yè)條數(shù)
??7????????///?</summary>
??8????????int?PageSize;
??9????????/**////?<summary>
?10????????///?總頁(yè)數(shù)
?11????????///?</summary>
?12????????int?PageCount;
?13????????/**////?<summary>
?14????????///?總條數(shù)
?15????????///?</summary>
?16????????int?RecordCount;
?17
?18????????/**////?<summary>
?19????????///?頁(yè)面首次加載
?20????????///?</summary>
?21????????///?<param?name="sender">發(fā)送對(duì)象</param>
?22????????///?<param?name="e">事件參數(shù)</param>
?23????????protected?void?Page_Load(object?sender,?EventArgs?e)
?24????????{
?25????????????PageSize?=?2;//每頁(yè)數(shù)據(jù)記錄
?26
?27????????????if?(!IsPostBack)
?28????????????{
?29????????????????CurrentPage?=?0;//當(dāng)前頁(yè)習(xí)慣設(shè)為0
?30????????????????ViewState["PageIndex"]?=?0;//頁(yè)索引也設(shè)為0
?31
?32????????????????//計(jì)算總共有多少記錄
?33????????????????RecordCount?=?CalculateRecord();
?34
?35????????????????//計(jì)算總共有多少頁(yè)
?36????????????????if?(RecordCount?%?PageSize?==?0)
?37????????????????{
?38????????????????????PageCount?=?RecordCount?/?PageSize;
?39????????????????}
?40????????????????else
?41????????????????{
?42????????????????????PageCount?=?RecordCount?/?PageSize?+?1;
?43????????????????}
?44
?45????????????????this.TotalLbl.Text?=?PageCount.ToString();//顯示總頁(yè)數(shù)
?46????????????????ViewState["PageCount"]?=?PageCount;
?47
?48????????????????this.DataListBind();
?49????????????}
?50????????}
?51
?52
?53????????/**////?<summary>
?54????????///?計(jì)算記錄數(shù)
?55????????///?</summary>
?56????????///?<returns></returns>
?57????????private?int?CalculateRecord()
?58????????{
?59????????????try
?60????????????{
?61????????????????int?recordCount;
?62????????????????SqlConnection?con?=?new?SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());
?63????????????????con.Open();
?64
?65????????????????string?sql?=?"select?count(*)?as?count?from?cps_adinfo";
?66????????????????SqlCommand?cmd?=?new?SqlCommand(sql,?con);
?67????????????????SqlDataReader?sdr?=?cmd.ExecuteReader();
?68
?69????????????????if?(sdr.Read())
?70????????????????{
?71????????????????????recordCount?=?Int32.Parse(sdr["count"].ToString());
?72????????????????}
?73????????????????else
?74????????????????{
?75????????????????????recordCount?=?0;
?76????????????????}
?77
?78????????????????sdr.Close();
?79????????????????con.Close();
?80
?81????????????????return?recordCount;
?82????????????}
?83
?84????????????catch?(Exception?ex)
?85????????????{
?86????????????????throw?new?Exception(ex.Message);
?87????????????}
?88????????}
?89
?90
?91????????/**////?<summary>
?92????????///?將數(shù)據(jù)綁定到Datalist控件
?93????????///?</summary>
?94????????public?void?DataListBind()
?95????????{
?96????????????try
?97????????????{
?98????????????????int?StartIndex?=?CurrentPage?*?PageSize;//設(shè)定導(dǎo)入的起終地址
?99
100????????????????string?sql?=?"select?*?from?cps_adinfo";
101
102????????????????DataSet?ds?=?new?DataSet();
103????????????????SqlConnection?con?=?new?SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString());
104????????????????con.Open();
105
106????????????????SqlDataAdapter?sda?=?new?SqlDataAdapter(sql,?con);
107????????????????//Fill方法的第一次重載
108????????????????sda.Fill(ds,?StartIndex,?PageSize,?"cps_adinfo");
109
110????????????????this.TextDataList.DataSource?=?ds.Tables["cps_adinfo"].DefaultView;
111????????????????this.TextDataList.DataBind();
112????????????????this.PreviousLB.Enabled?=?true;
113????????????????this.NextLB.Enabled?=?true;
114????????????????if?(CurrentPage?==?(PageCount?-?1))?this.NextLB.Enabled?=?false;//當(dāng)為最后一頁(yè)時(shí),下一頁(yè)鏈接按鈕不可用
115????????????????if?(CurrentPage?==?0)?this.PreviousLB.Enabled?=?false;//當(dāng)為第一頁(yè)時(shí),上一頁(yè)按鈕不可用
116????????????????this.CurrentLbl.Text?=?(CurrentPage?+?1).ToString();//當(dāng)前頁(yè)數(shù)
117
118????????????}
119
120????????????catch?(Exception?ex)
121????????????{
122????????????????throw?new?Exception(ex.Message);
123????????????}
124????????}
125
126????????/**////?<summary>
127????????///?按鈕點(diǎn)擊事件
128????????///?</summary>
129????????///?<param?name="sender"></param>
130????????///?<param?name="e"></param>
131????????public?void?LinkButton_Click(Object?sender,?CommandEventArgs?e)
132????????{
133????????????CurrentPage?=?Int32.Parse(ViewState["PageIndex"].ToString());//獲得當(dāng)前頁(yè)索引
134????????????PageCount?=?Int32.Parse(ViewState["PageCount"].ToString());//獲得總頁(yè)數(shù)
135
136????????????string?cmd?=?e.CommandName;?//判斷cmd,以判定翻頁(yè)方向
137????????????switch?(cmd)
138????????????{
139????????????????case?"prev"://上一頁(yè)
140????????????????????if?(CurrentPage?>?0)?CurrentPage--;
141????????????????????break;
142
143????????????????case?"next":
144????????????????????if?(CurrentPage?<?(PageCount?-?1))?CurrentPage++;//下一頁(yè)
145????????????????????break;
146
147????????????????case?"first"://第一頁(yè)
148????????????????????CurrentPage?=?0;
149????????????????????break;
150
151????????????????case?"end"://最后一頁(yè)
152????????????????????CurrentPage?=?PageCount?-?1;
153????????????????????break;
154
155????????????????case?"jump"://跳轉(zhuǎn)到第幾頁(yè)
156????????????????????if?(this.TextBox1.Value.Trim()?==?""
157????????????????????????||?Int32.Parse(this.TextBox1.Value.Trim())?>?PageCount
158????????????????????????||?Int32.Parse(this.TextBox1.Value.Trim())?==?0)
159??????????????????????
160????????????????????{
161????????????????????????return;
162????????????????????}
163????????????????????else
164????????????????????{
165????????????????????????CurrentPage?=?Int32.Parse(this.TextBox1.Value.ToString())?-?1;
166????????????????????????break;
167????????????????????}
168????????????}
169????????????ViewState["PageIndex"]?=?CurrentPage;//獲得當(dāng)前頁(yè)
170????????????this.DataListBind();
171????????????
172????????}??
分頁(yè)跳轉(zhuǎn)時(shí)做了判斷 不會(huì)報(bào)異常了
下面是設(shè)計(jì)頁(yè)
Code
?1??<asp:DataList?ID="TextDataList"?runat="server"?Width="100%"?DataKeyField="adid"?EnableViewState="False"
?2????????????????????CssClass="pic"?Font-Overline="False">
?3????????????????????<ItemTemplate>
?4????????????????????????<p?class="piczt">
?5????????????????????????????文字鏈內(nèi)容:
?6????????????????????????????<asp:Label?ID="lal"?runat="server"?Text='<%#?Eval("adtitle")?%>'></asp:Label><br?/>
?7????????????????????????</p>
?8???????????????????????????????????????????????<div?class="picco">
?9????????????????????????????<p?class="picco1">
10?????????????????????????????????<asp:TextBox?ID="txtHtmlCode"?TextMode="MultiLine"?Rows="3"?Columns="40"?Text='<%#?Eval("htmlcode")?%>'
11????????????????????????????????????????????runat="server"?ReadOnly="true"?EnableViewState="false"></asp:TextBox>
12????????????????????????????</p>
13????????????????????????????<p?class="picco2">
14????????????????????????????????<asp:TextBox?ID="txtForumCode"?TextMode="MultiLine"?Rows="3"?Columns="40"?Text='<%#?Eval("forumcode")?%>'
15????????????????????????????????????????????runat="server"?ReadOnly="true"?EnableViewState="false"></asp:TextBox>
16?????????????????????????????</p>
17????????????????????????</div>
18????????????????????????<div?class="picco">
19????????????????????????????<p?class="picco1">
20?????????????????????????????<input?name="button1"?type="button"??class="an2"?value="復(fù)制廣告代碼"?onclick="setTxt('<%#?Eval("htmlcode")?%>')"/>
21????????????????????????????????????復(fù)制廣告代碼</button>
22????????????????????????????</p>
23????????????????????????????<p?class="picco2">
24????????????????????????????????<input?name="button1"?type="button"?class="an2"?value="復(fù)制論壇代碼"?onclick="setTxt('<%#?Eval("forumcode")?%>')"/>
25????????????????????????????????????復(fù)制論壇代碼</button>
26????????????????????????????</p>
27????????????????????????</div>
28????????????????????????<p?class="piczt">
29????????????????????????????產(chǎn)品名稱(chēng):鞋?產(chǎn)品ID:123456789</p>
30????????????????????????<p?class="piczt">
31????????????????????????????提成比例:10%</p>
32????????????????????????<p?class="piczt">
33????????????????????????????<span?class="zi2">注意:</span>?您的聯(lián)盟?ID,?abcdef?,?已經(jīng)包含在代碼中</p>
34????????????????????</ItemTemplate>
35????????????????????<ItemStyle?Width="100%"?/>
36????????????????</asp:DataList>
37????????????????<div?class="page">
38????????????????????共<asp:Label?ID="TotalLbl"?runat="server"></asp:Label>頁(yè),?當(dāng)前第<asp:Label?ID="CurrentLbl"
39????????????????????????runat="server"></asp:Label>頁(yè)
40????????????????????<asp:LinkButton?ID="FirstLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="first"
41????????????????????????Font-Overline="False">[?首頁(yè)?|?</asp:LinkButton>
42????????????????????<asp:LinkButton?ID="PreviousLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="prev"
43????????????????????????Font-Overline="False">上一頁(yè)?|?</asp:LinkButton>
44????????????????????<asp:LinkButton?ID="NextLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="next"
45????????????????????????Font-Overline="False">下一頁(yè)?|?</asp:LinkButton>
46????????????????????<asp:LinkButton?ID="EndLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="end"
47????????????????????????Font-Bold="False"?Font-Overline="False">末頁(yè)?]</asp:LinkButton>
48????????????????????<asp:LinkButton?ID="JumpLB"?runat="server"?OnCommand="LinkButton_Click"?CommandName="jump"
49????????????????????????Font-Overline="False">跳到</asp:LinkButton>
50????????????????????<input?id="TextBox1"?runat="server"?type="text"?name="TextBox1"?style="width:?30px"
51????????????????????????onkeyup="value=value.replace(/[^\d]/g,'')"?/>
52????????????????</div>
53
54功能上除了分頁(yè) 還有一個(gè)復(fù)制文本框的方法
??? <script type="text/javascript">
??????? function setTxt(obj) {
??????????? window.clipboardData.setData('text', obj);
??????????? alert("復(fù)制成功!");
??????? }
??? </script>
轉(zhuǎn)載于:https://www.cnblogs.com/uranuschen/archive/2009/07/21/1527833.html
總結(jié)
以上是生活随笔為你收集整理的DataList控件分页的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 北京同城顺丰多少钱啊?
- 下一篇: 抗体检查多少钱啊?