日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转)一个带自定义分页,排序功能的DATAGRID控件(公开源码)

發布時間:2025/6/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转)一个带自定义分页,排序功能的DATAGRID控件(公开源码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??
? 因為項目需要,要弄個有這樣功能的控件。要有自定意分頁和排序的功能。在這個控件里面數據的綁定都是用DataView來實現,DataView放在Session里,如果大家有更靈活的方法可以留言給我。Session的名字我已經做成了屬性叫sessionName,可以直接設置,你們喜歡叫什么就自己改吧。以下是完整的代碼,由于是剛剛出爐,可能會有考慮不足的地方,希望使用或修改的朋友多提意見一起交流,我分享我快樂:)
下面是可以使用的控件
先下載過的朋友,那個DLL文件有問題,下這個新的,下面的程序代碼也改了一個小地方271行
該控件使用方法和DataGrid一樣,需要分頁時必須設置分頁功能為true
LcDataGrid.rar

??1using?System;
??2using?System.Web.UI;
??3using?System.Web.UI.WebControls;
??4using?System.ComponentModel;
??5using?System.Data;
??6
??7namespace?LcWebControls
??8{
??9????/**////?<summary>
?10????///?盧昶?2005-7-11
?11????///?Email:darkangel@ynmail.com
?12????///?msn:darkangellc@msn.com
?13????///?</summary>

?14????[DefaultProperty("Text"),?
?15????????ToolboxData("<{0}:LcDataGrid?runat=server></{0}:LcDataGrid>")]
?16????public?class?LcDataGrid?:?System.Web.UI.WebControls.DataGrid
?17????{
?18Define#region?Define
?19????????private?string?text;
?20????????private?System.Web.UI.WebControls.Button?bt=new?Button();
?21????????private?TextBox?tb=new?TextBox();
?22????????private?System.Web.UI.Page?pg=new?Page();
?23????????private?string?sessionname;
?24????????private?LinkButton?PrevPAGE=new?LinkButton();
?25????????private?LinkButton?NextPAGE=new?LinkButton();
?26????????private?DropDownList?ddl=new?DropDownList();
?27????????private?Label?lbend=new?Label();
?28????????private?Label?lbtag=new?Label();
?29????????private?Label?lbddls=new?Label();
?30????????private?Label?lbddle=new?Label();
?31????????
?32#endregion

?33displayPortery#region?displayPortery
?34
?35????????public?int?Currindex
?36????????{
?37????????????set
?38????????????{
?39????????????????try
?40????????????????{
?41?????????????????????this.CurrentPageIndex=value;
?42????????????????}

?43????????????????catch
?44????????????????{
?45????????????????????
?46????????????????}

?47????????????????
?48????????????}

?49????????????get
?50????????????{
?51??????????????return?this.CurrentPageIndex;
?52????????????}

?53????????}

?54#endregion
????
?55Property#region?Property
?56
?57
?58????????[Bindable(true),?
?59????????????Category("Appearance"),?
?60????????????DefaultValue("")]?
?61????????public?string?Text?
?62????????{
?63????????????get
?64????????????{
?65????????????????return?text;
?66????????????}

?67
?68????????????set
?69????????????{
?70????????????????text?=?value;
?71????????????}

?72????????}

?73????????[Bindable(true),?
?74????????Category("Appearance"),?
?75????????DefaultValue(""),
?76????????DescriptionAttribute("Session的名稱,Session用于數據綁定,必須是DataView類型")
?77????????]?
?78????????public?string?sessionName
?79????????{
?80????????????get
?81????????????{
?82????????????????return?sessionname;
?83????????????}

?84????????????set
?85????????????{
?86????????????????sessionname=value;
?87
?88????????????}

?89????????}

?90????????[Bindable(true),?
?91????????????Category("Appearance"),?
?92????????????DefaultValue("")]?
?93????????????public?string?TT
?94????????????{
?95????????????????get
?96????????????????{
?97????????????????????try
?98????????????????????{
?99????????????????????????
100????????????????????????return?this.ViewState["sort"].ToString();
101????????????????????}

102????????????????????catch
103????????????????????{
104?????????????????????????this.ViewState["sort"]="asc";
105????????????????????????return?this.ViewState["sort"].ToString();
106????????????????????}

107????????????????????
108????????????????}

109????????????????set
110????????????????{
111????????????????????this.ViewState["sort"]=value;
112????????????????}

113
114????????????}

115????????
116????#endregion

117
118????????/**////?<summary>?
119????????///?將此控件呈現給指定的輸出參數。
120????????///?</summary>
121????????///?<param?name="output">?要寫出到的?HTML?編寫器?</param>

122
123protected?override?void?OnItemCreated(DataGridItemEventArgs?e)
124????????{????
125
126????????????if(e.Item.ItemType?==?ListItemType.Pager)
127????????????{
128????????????????e.Item.Cells[0].Controls.Clear();
129????????????????TextBox?tb=new?TextBox();
130????????????????creatControl(e.Item.Cells[0]);
131????????????}

132
133?????????
134????????}

135protected?override?void?OnItemCommand(DataGridCommandEventArgs?e)
136????????{
137????????????string?strCommandName?=?e.CommandName;
138????????????if(e.CommandName?==?null)?
139????????????????return;
140
141????????????strCommandName?=?string.IsInterned(strCommandName);
142????????????switch(e.CommandName)
143????????????{
144????????????
145????????????????case?"PrevPAGE":
146????????????????{
147????????????????????PrevPAGE_Click(null,null);
148????????????????????break;
149????????????????}

150????????????????case?"NextPAGE":
151????????????????{
152????????????????????NextPAGE_Click(null,null);
153????????????????????break;
154????????????????}

155????????????????
156????????????}

157????????????base.OnItemCommand(e);
158????????}

159????
160protected?override?void?OnItemDataBound(DataGridItemEventArgs?e)
161{
162????????????
163???????????if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
164????????????{
165????????????????e.Item.Attributes.Add("style","cursor:hand");
166????????????????e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#FFCC00'");
167????????????????e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=''");
168????????????}

169}

170????????protected?override?void?OnSortCommand(DataGridSortCommandEventArgs?e)
171????????{
172????????????base.OnSortCommand?(e);
173????????????DataView?dv=(DataView)this.Page.Session[sessionName];
174????????????if?(TT.Equals("desc"))
175????????????{
176????????????????dv.Sort=e.SortExpression+"?asc";
177????????????????TT="asc";
178????????????}

179????????????else
180????????????{
181????????????????dv.Sort=e.SortExpression+"?desc";
182????????????????TT="desc";
183????????????}

184????????????
185????????????
186????????????this.DataSource=dv;
187????????????this.DataBind();
188????????????this.Page.Session[sessionName]=dv;
189????????}

190
191
192????
193
194InitDataGird#region?InitDataGird
195
196????????protected?void?creatControl(TableCell?tc)
197????????{
198
199????????????creatPageCount(tc);
200????????????creatCount(tc);
201????????????creatSPage(tc);
202????????????creatDDL(tc);
203
204
205????????}

206????????private?void?creatCount(TableCell?tc)
207????????{
208????????
209????????????lbtag.Text="??每頁顯示記錄數";
210????????????tb.Text=this.PageSize.ToString();
211????????????tb.Width=20;
212????????????bt.Text="提交";
213????????????bt.Click+=new?EventHandler(bt_Click);
214????????????tc.Controls.Add(lbtag);
215????????????tc.Controls.Add(tb);
216????????????tc.Controls.Add(bt);
217???????????//?
218
219????????}

220????????
221????????private?void?creatPageCount(TableCell?tc)
222????????{
223????????????Label?lb=new?Label();
224????????????lb.Text="<P?align=\"right\">?共"+this.PageCount+"頁????第"+(this.CurrentPageIndex+1)+"頁??";
225????????????tc.Controls.Add(lb);
226
227????????}

228????
229????????private?void?creatSPage(TableCell?tc)
230????????{
231?????????PrevPAGE.Text="上一頁";
232????????NextPAGE.Text="下一頁";????
233????????PrevPAGE.CommandName="PrevPAGE";
234????????NextPAGE.CommandName="NextPAGE";
235????????tc.Controls.Add(PrevPAGE);
236????????tc.Controls.Add(NextPAGE);
237????????}

238????????private?void?creatDDL(TableCell?tc)
239????????{
240????????????
241????????????lbend.Text="頁</p>";
242????????????lbddls.Text="??跳轉到第";
243????????????ddl.AutoPostBack=true;
244????????????ddl.EnableViewState=true;
245????????????if?(!this.Page.IsPostBack)
246????????????{
247????????????????ddl.Items.Clear();
248????????????????initDDL();
249????????????}

250????????????ddl.SelectedIndexChanged+=new?EventHandler(ddl_SelectedIndexChanged);
251????????????tc.Controls.Add(lbddls);
252????????????tc.Controls.Add(ddl);
253????????????tc.Controls.Add(lbend);
254????????}

255????????private?void?initDDL()
256????????{
257????????????int?count=this.PageCount;
258????????????
259????????????for?(int?i=1;i<=count;i++)
260????????????{
261????????????????ddl.Items.Add(i.ToString());
262????????????????
263????????????}

264????????}

265????????#endregion

266InitEvent#region?InitEvent
267????????private?void?bt_Click(object?sender,?EventArgs?e)
268????{
269????????this.PageSize=Convert.ToInt32(tb.Text);
270????????ddl.Items.Clear();
271????????initDDL();
???????????????? this.CurrentPageIndex=0;

272????????BindGrid();
273????}

274????????private?void?PrevPAGE_Click(object?sender,?EventArgs?e)
275????????{
276????????????int?con=this.CurrentPageIndex;
277????????????if?(this.CurrentPageIndex-1<0)
278????????????{
279????????????????
280
281????????????}

282????????????else
283????????????{
284????????????????this.CurrentPageIndex=con-1;
285????????????}

286????????????ddl.SelectedValue=(this.CurrentPageIndex+1).ToString();
287????????????BindGrid();
288????????????
289????????}

290????????private?void?NextPAGE_Click(object?sender,?EventArgs?e)
291????????{
292????????????int?con=this.CurrentPageIndex;
293????????????if?(this.CurrentPageIndex>=this.PageCount-1)
294????????????{
295????????????????
296????????????}

297????????????else
298????????????{
299????????????????this.CurrentPageIndex=con+1;
300????????????}

301????????????ddl.SelectedValue=(this.CurrentPageIndex+1).ToString();
302????????????BindGrid();
303????????????
304????????}

305????????private?void?ddl_SelectedIndexChanged(object?sender,?EventArgs?e)
306????????{
307????????????int?curri=Convert.ToInt16(ddl.SelectedValue)?-?1;
308????????????this.CurrentPageIndex=curri;
309????????????BindGrid();
310????????}

311
312????????#endregion

313GridFunction#region?GridFunction
314private?void?BindGrid()
315{
316????this.DataSource=(DataView)Page.Session[sessionName];
317????this.DataBind();
318
319}

320????????#endregion

321
322????????
323????}

324}

325

轉載于:https://www.cnblogs.com/zgqys1980/archive/2006/08/19/481164.html

總結

以上是生活随笔為你收集整理的(转)一个带自定义分页,排序功能的DATAGRID控件(公开源码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黑人巨大精品欧美一区二区 | 国产免费一区二区三区三州老师 | 日本一区二区三区视频在线观看 | 国产操比视频 | 欧美一级片免费在线观看 | 中文字幕一区二区三区不卡 | 性色av一区二区三区在线观看 | 日韩av一卡 | 国产又黄又湿 | 香蕉久草 | 日韩理论在线观看 | 在线观看国产黄色 | 亚洲成人av免费观看 | 成人午夜又粗又硬又大 | 午夜小视频在线观看 | 亚洲国产欧美在线人成 | 小蝌蚪av| 奇米精品一区二区三区在线观看一 | 中文在线播放 | 色欲av无码一区二区三区 | 欧美一区二区激情 | 国产又粗又深又猛又爽又在线观看 | 日韩精品一区在线观看 | 一区二区三区精品国产 | heyzo国产 | 狠狠干干 | 欧美日韩在线免费观看视频 | 中文字幕电影一区二区 | 日韩一二区 | 国产熟妇与子伦hd | 国产女主播一区二区 | 免费的黄色小视频 | 日韩免费一区二区三区 | 97人人模人人爽人人少妇 | 久草视频中文在线 | 亚洲欧美日韩国产成人精品影院 | 国产成人一区二区三区小说 | 欧美美女性视频 | 成人交配视频 | 五月激情婷婷在线 | 91一起草| av色区| 麻豆视频网站入口 | 亚洲成a人片在线www | 日日操夜夜操视频 | 久久久成人网 | 欧美成人黄 | 成人黄色在线免费观看 | 欧美一区二区三区视频 | 日本一区二区三区网站 | 丰满人妻一区二区三区免费视频棣 | 久久久国产精品一区 | 成人h动漫精品一区二区器材 | 国产又爽又黄无码无遮挡在线观看 | 亚洲一区影视 | 欧美视频一区二区在线观看 | 欧美另类自拍 | 亚洲亚洲人成综合网络 | 久久99久久精品 | 殴美一级特黄aaaaaa | 久久99精品久久久水蜜桃 | 国产精品免费一区二区三区 | 日韩有码av| 国产精品日韩欧美一区二区三区 | 波多野结衣在线一区二区 | 懂色av一区二区三区四区 | 在线免费观看污网站 | 亚洲综合涩 | 男人天堂av网 | 色综合av综合无码综合网站 | 欧美 亚洲 一区 | www.天天射 | 精品欧美黑人一区二区三区 | 温柔少妇的高潮呻吟 | 国产精品一区二区三区四区五区 | 玖玖玖国产精品 | 亚洲成色在线 | 亚洲国产www | 日本一区二区三区电影在线观看 | 深夜在线网站 | 九色蝌蚪视频 | av动漫网站| 亚洲黄色录像 | 女女同性高清片免费看 | 亚洲男女在线观看 | 日韩精品在线观看中文字幕 | 激情五月婷婷在线 | 久久这里只精品 | 日本极品丰满ⅹxxxhd | 波多野结衣大片 | 国产男女裸体做爰爽爽 | 中文字幕精品久久 | 99er精品视频 | 亚洲精品理论片 | 欧美大白屁股 | 欧美一区二区三区系列电影 | 激情欧美一区二区 | 韩国伦理片在线播放 | 日韩中文字幕在线观看 |