当前位置: 首页 > news >正文

免费学做网站谷歌搜索引擎入口2022

免费学做网站,谷歌搜索引擎入口2022,php怎么做视频网站,西安大型网站制作Repeater控件使用心得 欢迎进来讨论 现在ASP。NET 提供了3个控件来显示数据列表 1.Repeater 2.DataList 3.GridView 这3种控件各有千秋 但是我选择的是Repeater控件,原因嘛 就因为他可以非常灵活的控制HTML输出 这样一来 我们就可以自己写DIV 或者是UL LI等等 可以…
Repeater控件使用心得 欢迎进来讨论

 

    现在ASP。NET 提供了3个控件来显示数据列表
1.Repeater 2.DataList 3.GridView

这3种控件各有千秋
但是我选择的是Repeater控件,原因嘛 就因为他可以非常灵活的控制HTML输出
这样一来 我们就可以自己写DIV 或者是UL LI等等 可以实现WEB2.0标准网页

Repeater 控件 包括4个常用模版
1. HeaderTemplate
2. ItemTemplate
3. AlterTemplate
4. FooterTemplate

一般来说 不循环的部分 就写在 HeaderTemplate 和FooterTemplate 里面
重点咱们说说ItemTemplate里面的代码写法
<ul>
   <li><%# ((Mycs.Model.CategoryInfo)Container.DataItem).Id.ToString() %></li>
</ul>
本人推荐使用这种数据邦定方法 因为 我们如果使用Eval()方法的话 他实际上是使用得反射技术
而反射技术会大量降低程序的执行速度,而且必须传递一个参数 而我们通常是使用得数据表字段
这样一来 就升高了程序的耦合性,而我们如果使用以上的代码的话我们就可以直接使用实体对象来
进行邦定 一举两得 何乐而不为呢? 呵呵
再说DataSource 的邦定
本人推荐使用List<T> 泛型 一是因为这是类型安全的,速度更快 二是里面的对象直接就是实体对象
不用进行多次数据转换。
再说说如何进行分页和排序

分页嘛 我自己写了一个分页控件 里面写了一个委托 , 在绑定数据对象的时候就直接调用这个委托
对数据分页进行封装。

至于排序,我推荐是在实体类里面实现LIST<T>的排序规则。
至于如何做这个可以回帖 或者直接查询MSDN
还有什么问题的话 ,可以在本贴回帖  就写到这里 希望对学习REPEATER的朋友有所帮助:)

---------------------------------

以下是分页源码

 

ContractedBlock.gifExpandedBlockStart.gifCode
  1using System;
  2using System.Collections.Generic;
  3using System.ComponentModel;
  4using System.Text;
  5using System.Web;
  6using System.Web.UI;
  7using System.Web.UI.WebControls;
  8using System.Security.Permissions;
  9using System.Collections;
 10
 11namespace SideTicket.Biz.Controls
 12ExpandedBlockStart.gifContractedBlock.gif{
 13ExpandedSubBlockStart.gifContractedSubBlock.gif    /**//// <summary>
 14    /// 基础分页控件
 15    /// </summary>

 16    [ToolboxData("<{0}:BasePaginationControl runat=server></{0}:BasePaginationControl>")]
 17    public class BasePaginationControl : CompositeControl
 18ExpandedSubBlockStart.gifContractedSubBlock.gif    {
 19        public delegate void CurrentPageChangedEventHandler(object sender,CurrentPageChangedEventArgs e);
 20        public delegate object BoundData();
 21        public virtual event CurrentPageChangedEventHandler CurrentPageChanged;
 22        private LinkButton _btnDefault;
 23        private LinkButton _btnBefore;
 24        private LinkButton _btnNext;
 25        private LinkButton _btnLast;
 26        private DropDownList _ddlPages;
 27ContractedSubBlock.gifExpandedSubBlockStart.gif        分页控件数据项集合#region 分页控件数据项集合
 28ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
 29        /// 获取或设置当前页数
 30        /// </summary>

 31        [Bindable(true)]
 32        [Category("Data")]
 33        [DefaultValue(1)]
 34        [Localizable(true)]
 35        public int CurrentPage
 36ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 37            get
 38ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 39                object obj = ViewState["CurrentPage"];
 40                return (obj == null? 1 : (System.Int32)ViewState["CurrentPage"];
 41            }

 42
 43            set
 44ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 45                ViewState["CurrentPage"= value;
 46            }

 47        }

 48ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
 49        /// 获取或设置每页数据条数
 50        /// </summary>

 51        [Bindable(true)]
 52        [Category("Data")]
 53        [DefaultValue(10)]
 54        [Localizable(true)]
 55        public int PageSize 
 56ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 57            get
 58ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 59                object obj = ViewState["PageSize"];
 60                return (obj == null? 10 : (System.Int32)ViewState["PageSize"];
 61            }

 62
 63            set
 64ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 65                ViewState["PageSize"= value;
 66            }

 67        }

 68ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
 69        /// 获取页面数量
 70        /// </summary>

 71        [Browsable(false)]
 72        public int PageCount
 73ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 74            get
 75ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 76                if (Count < 1 || PageSize < 1 || CurrentPage < 1)
 77ExpandedSubBlockStart.gifContractedSubBlock.gif                {
 78                    return -1;
 79                }

 80                else
 81ExpandedSubBlockStart.gifContractedSubBlock.gif                {
 82                    double pagecount = double.Parse(Count.ToString()) / double.Parse(PageSize.ToString());
 83                    string pcstr = pagecount.ToString();
 84                    int pcint = 0;
 85                    if (pcstr.Contains("."))
 86ExpandedSubBlockStart.gifContractedSubBlock.gif                    {
 87                        string[] pcs = pcstr.Split('.');
 88                        if (int.Parse(pcs[1][0].ToString()) > 0)
 89                            pcint = int.Parse(pcs[0]) + 1;
 90                        else
 91                            pcint = int.Parse(pcs[0]);
 92                    }

 93                    else
 94                        pcint = int.Parse(pcstr);
 95                    return ((pagecount < 1.0? 1 : pcint);
 96                }

 97            }

 98        }

 99ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
100        /// 获取或设置数据总数
101        /// </summary>

102        [Bindable(true)]
103        [Category("Data")]
104        [DefaultValue(-1)]
105        [Localizable(true)]
106        public int Count
107ExpandedSubBlockStart.gifContractedSubBlock.gif        {
108            get
109ExpandedSubBlockStart.gifContractedSubBlock.gif            {
110                object obj = ViewState["Count"];
111                return (obj == null? -1 : (System.Int32)ViewState["Count"];
112            }

113
114            set
115ExpandedSubBlockStart.gifContractedSubBlock.gif            {
116                ViewState["Count"= value;
117            }

118        }

119        #endregion

120        protected override void CreateChildControls()
121ExpandedSubBlockStart.gifContractedSubBlock.gif        {
122            _btnDefault = new LinkButton();
123            _btnDefault.ID = "_btnDefault";
124            _btnDefault.Text = "首页";
125            _btnDefault.Command += new CommandEventHandler(btnDefault_Command);
126            Controls.Add(_btnDefault);
127
128            _btnBefore = new LinkButton();
129            _btnBefore.ID = "_btnBefore";
130            _btnBefore.Text = "上一页";
131            _btnBefore.Command += new CommandEventHandler(btnBefore_Command);
132            Controls.Add(_btnBefore);
133
134            _btnNext = new LinkButton();
135            _btnNext.ID = "_btnNext";
136            _btnNext.Text = "下一页";
137            _btnNext.Command += new CommandEventHandler(_btnNext_Command);
138            Controls.Add(_btnNext);
139
140            _btnLast = new LinkButton();
141            _btnLast.ID = "_btnLast";
142            _btnLast.Text = "尾页";
143            _btnLast.Command += new CommandEventHandler(btnLast_Command);
144            Controls.Add(_btnLast);
145
146            _ddlPages = new DropDownList();
147            _ddlPages.DataSource = GetPagesData();
148            _ddlPages.DataTextField = "Text";
149            _ddlPages.DataValueField = "Value";
150            _ddlPages.DataBind();
151            _ddlPages.AutoPostBack = true;
152            _ddlPages.ID = "_ddlPages";
153            _ddlPages.SelectedValue = CurrentPage.ToString();
154            _ddlPages.SelectedIndexChanged += new EventHandler(ddlPages_SelectedIndexChanged);
155            Controls.Add(_ddlPages);
156        }

157        private void btnDefault_Command(object sender, CommandEventArgs e) 
158ExpandedSubBlockStart.gifContractedSubBlock.gif        {
159            this.CurrentPage = 1;
160            OnCurrentPageChanged(new CurrentPageChangedEventArgs(CurrentPage, Count, PageSize));
161        }

162        private void btnBefore_Command(object sender, CommandEventArgs e)
163ExpandedSubBlockStart.gifContractedSubBlock.gif        {
164            this.CurrentPage -= 1;
165            OnCurrentPageChanged(new CurrentPageChangedEventArgs(CurrentPage, Count, PageSize));
166        }

167        private void _btnNext_Command(object sender, CommandEventArgs e)
168ExpandedSubBlockStart.gifContractedSubBlock.gif        {
169            this.CurrentPage += 1;
170            OnCurrentPageChanged(new CurrentPageChangedEventArgs(CurrentPage, Count, PageSize));
171        }

172        private void btnLast_Command(object sender, CommandEventArgs e)
173ExpandedSubBlockStart.gifContractedSubBlock.gif        {
174            this.CurrentPage = PageCount;
175            OnCurrentPageChanged(new CurrentPageChangedEventArgs(CurrentPage, Count, PageSize));
176        }

177        private void ddlPages_SelectedIndexChanged(object sender, EventArgs e) 
178ExpandedSubBlockStart.gifContractedSubBlock.gif        {
179            this.CurrentPage = int.Parse(_ddlPages.SelectedValue);
180            OnCurrentPageChanged(new CurrentPageChangedEventArgs(CurrentPage, Count, PageSize));
181        }

182        protected virtual ArrayList GetPagesData() 
183ExpandedSubBlockStart.gifContractedSubBlock.gif        {
184            ArrayList al = new ArrayList();
185            for (int i = 1; i < PageCount + 1; i++
186ExpandedSubBlockStart.gifContractedSubBlock.gif            {
187                string s = i.ToString();
188                al.Add(new ItemObject(s, s));
189            }

190            return al;
191        }

192        protected override void RenderContents(HtmlTextWriter output)
193ExpandedSubBlockStart.gifContractedSubBlock.gif        {
194            if (CurrentPage == 1)
195ExpandedSubBlockStart.gifContractedSubBlock.gif            {
196                _btnBefore.Enabled = false;
197                _btnDefault.Enabled = false;
198                _btnLast.Enabled = true;
199                _btnNext.Enabled = true;
200            }

201            else if (CurrentPage == PageCount)
202ExpandedSubBlockStart.gifContractedSubBlock.gif            {
203                _btnLast.Enabled = false;
204                _btnNext.Enabled = false;
205                _btnBefore.Enabled = true;
206                _btnDefault.Enabled = true;
207            }

208            else
209ExpandedSubBlockStart.gifContractedSubBlock.gif            {
210                _btnBefore.Enabled = true;
211                _btnDefault.Enabled = true;
212                _btnLast.Enabled = true;
213                _btnNext.Enabled = true;
214            }

215ExpandedSubBlockStart.gifContractedSubBlock.gif            /**//*
216             * <table>
217             * <tr>
218             * <td></td>
219             * <td></td>
220             * </tr>
221             * </table>
222             */

223            if (Count > 0 && Count > PageSize)
224ExpandedSubBlockStart.gifContractedSubBlock.gif            {
225                output.RenderBeginTag(HtmlTextWriterTag.Table);
226                output.RenderBeginTag(HtmlTextWriterTag.Tr);
227                output.RenderBeginTag(HtmlTextWriterTag.Td);
228                output.Write("共有数据" + Count + "条 每页" + PageSize + "条数据 当前为第" + CurrentPage + "");
229                output.RenderEndTag();
230                output.RenderBeginTag(HtmlTextWriterTag.Td);
231                _btnDefault.RenderControl(output);
232                output.RenderEndTag();
233                output.RenderBeginTag(HtmlTextWriterTag.Td);
234                _btnBefore.RenderControl(output);
235                output.RenderEndTag();
236
237                output.RenderBeginTag(HtmlTextWriterTag.Td);
238
239                output.RenderEndTag();
240
241                output.RenderBeginTag(HtmlTextWriterTag.Td);
242                _btnNext.RenderControl(output);
243                output.RenderEndTag();
244                output.RenderBeginTag(HtmlTextWriterTag.Td);
245                _btnLast.RenderControl(output);
246                output.RenderEndTag();
247
248                output.RenderBeginTag(HtmlTextWriterTag.Td);
249                output.Write(" 转到第");
250                _ddlPages.RenderControl(output);
251                output.Write("");
252                output.RenderEndTag();
253
254                output.RenderEndTag();
255                output.RenderEndTag();
256            }

257        }

258        protected override bool OnBubbleEvent(object source, EventArgs args)
259ExpandedSubBlockStart.gifContractedSubBlock.gif        {
260            bool handled = false;
261            CurrentPageChangedEventArgs pageArgs = args as CurrentPageChangedEventArgs;
262            if (pageArgs != null)
263ExpandedSubBlockStart.gifContractedSubBlock.gif            {
264                OnCurrentPageChanged(pageArgs);
265                handled = true;
266            }

267            return handled;
268        }

269        public void OnCurrentPageChanged(CurrentPageChangedEventArgs e) 
270ExpandedSubBlockStart.gifContractedSubBlock.gif        {
271            EnsureChildControls();
272            _ddlPages.SelectedValue = CurrentPage.ToString();
273            if (CurrentPage == 1
274ExpandedSubBlockStart.gifContractedSubBlock.gif            {
275                _btnBefore.Enabled = false;
276                _btnDefault.Enabled = false;
277                _btnLast.Enabled = true;
278                _btnNext.Enabled = true;
279            }

280            else if (CurrentPage == PageCount)
281ExpandedSubBlockStart.gifContractedSubBlock.gif            {
282                _btnLast.Enabled = false;
283                _btnNext.Enabled = false;
284                _btnBefore.Enabled = true;
285                _btnDefault.Enabled = true;
286            }

287            else 
288ExpandedSubBlockStart.gifContractedSubBlock.gif            {
289                _btnBefore.Enabled = true;
290                _btnDefault.Enabled = true;
291                _btnLast.Enabled = true;
292                _btnNext.Enabled = true;
293            }

294            if (CurrentPageChanged != null)
295ExpandedSubBlockStart.gifContractedSubBlock.gif            {
296                CurrentPageChanged(this, e);
297            }

298        }

299        public void BoundControlData<T>(BoundData function,Repeater rep) 
300ExpandedSubBlockStart.gifContractedSubBlock.gif        {
301            List<T> list = (List<T>)function.Invoke();
302            if (list != null)
303ExpandedSubBlockStart.gifContractedSubBlock.gif            {
304                Count = list.Count;
305                if (!Page.IsPostBack)
306ExpandedSubBlockStart.gifContractedSubBlock.gif                {
307                    if (PageSize > list.Count)
308                        rep.DataSource = list.GetRange(0, list.Count);
309                    else
310                        rep.DataSource = list.GetRange(0, PageSize);
311                }

312                else
313ExpandedSubBlockStart.gifContractedSubBlock.gif                {
314                    if ((PageSize * CurrentPage) > list.Count)
315                        rep.DataSource = list.GetRange(CurrentPage * PageSize - PageSize, list.Count - ((CurrentPage - 1* PageSize));
316                    else
317                        rep.DataSource = list.GetRange(CurrentPage * PageSize - PageSize, PageSize);
318                }

319                rep.DataBind();
320            }

321        }

322        public void BoundControlData<T>(BoundData function, Repeater rep, int currentPage, int pageSize) 
323ExpandedSubBlockStart.gifContractedSubBlock.gif        {
324            this.CurrentPage = currentPage;
325            this.PageSize = pageSize;
326            BoundControlData<T>(function, rep);
327        }

328    }

329}

330

 


 

posted on 2009-02-14 15:13 Rhina 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/Boyona/archive/2009/02/14/1390605.html

http://www.lbrq.cn/news/2594359.html

相关文章:

  • 网站 怎么做百度才能搜索出来seo关键词优化培训
  • 珠海企业模板建站百度百科推广费用
  • 企业建网站方案有域名后如何建网站
  • 水果网站建设进行优化
  • 做网站 搞流量百度免费seo
  • 网站优化哪家好搜狗搜索引擎优化
  • 黑龙江公司网站建设seo建站要求
  • 深圳企业模板建站互联网营销公司
  • 湖北网页专业seo培训
  • 专业网站建设阿里云网站快照优化公司
  • 重庆建一个网站如何做市场推广方案
  • 网站建设台州网络推广怎么做效果好
  • 去年做的电子请帖怎么找原网站站长统计工具
  • 山东省城乡住房建设厅网站百度一下你就知道 官网
  • 网站制作软件是什么服务营销理论
  • 苏州推广有限公司荥阳seo
  • 营销网站的概念搜索引擎营销成功案例
  • 学习做网站需要多久网站设计费用
  • 自己如何做网站优化东莞全网推广
  • 做社区网站软件开发培训机构
  • 在线聊天网站怎么做百度问答怎么赚钱
  • 怎样做咨询网站google官网注册账号入口
  • 手机医疗网站模板qq营销
  • 直播教育网站建设seo网站推广全程实例
  • 1t网站空间主机多少钱百度怎么打广告在首页
  • wordpress有广告插件下载武汉seo首页优化公司
  • 公关公司主要做什么seo综合查询怎么用
  • 聊城做网站价位seo服务优化
  • 深圳顶级做网站公司seo怎么搞
  • 做电脑网站手机能显示肇庆网站建设
  • Jmeter进行性能并发测试
  • MLIR Introduction
  • Petalinux快捷下载
  • Nexus配置npm私有仓库
  • LLM大模型开发-SpringAI:ChatClient、Ollama、Advisor
  • Linux环境下使用Docker搭建多服务环境