首页 > 开发 > 综合 > 正文

用户自定义控件的应用。

2024-07-21 02:24:17
字体:
来源:转载
供稿:网友

asp.net中的 用户自定义控件 特点 1:实现服用;2:方便创建(相对与组件)。 以下为一个分页导航条的sample, 接见于webdiyer,相信很多人已经如雷贯耳了,我也不多介绍。本问只是简单的 练习之作,没有什么深奥的算法和架构。

----behindcode---------------------------------------------------------------------------------------------------------------

namespace gallonkit
{
 using system;
 using system.data;
 using system.drawing;
 using system.web;
 using system.web.ui.webcontrols;
 using system.web.ui.htmlcontrols;

 /// <summary>
 ///  pagebar 的摘要说明。
 /// </summary>
 
 public delegate void pagelocalbtn(uint index);

 public class pagebar : system.web.ui.usercontrol
 {
  protected system.web.ui.webcontrols.linkbutton linkbutton1;
  protected system.web.ui.webcontrols.linkbutton btn_fistpage;
  protected system.web.ui.webcontrols.linkbutton btn_lastpage;
  protected system.web.ui.webcontrols.linkbutton btn_prepage;
  protected system.web.ui.webcontrols.linkbutton btn_nextpage;
  protected system.web.ui.webcontrols.label lb_pagecount;
  protected system.web.ui.webcontrols.textbox tb_pageindex;
  protected system.web.ui.webcontrols.linkbutton btn_local;
  public pagelocalbtn localbtnclick;
  

  private void page_load(object sender, system.eventargs e)
  {
   // 在此处放置用户代码以初始化页面
  
  }

  private bool isuint(string strint)
  {
   try
   {
    uint.parse(strint);
   }
   catch(exception e)
   {
    return false;
   }

   return true;
   
  }

  
  
  public uint pageindex
  {
   get{
    if (this.isuint(this.tb_pageindex.text.trim()))
       return uint.parse(this.tb_pageindex.text.trim());
    return 0;
    }

   set{
    if (this.isuint(value.tostring()))
     this.tb_pageindex.text = value.tostring();
    else
     throw new system.exception("页数范围不正确!");

   }
  }

  

  public uint pagecount
  {
   get
   {
    object obj = viewstate["pagecount__"];
    return (obj == null)?0:(uint)obj;
   }

   set
   {
    
    if (this.isuint(value.tostring()))
    {
     this.lb_pagecount.text = value.tostring();
     viewstate["pagecount__"] = value;
    }
    else
     throw new system.exception("页数范围不正确!");
   }

  }

  
  #region web 窗体设计器生成的代码
  override protected void oninit(eventargs e)
  {
   //
   // codegen: 该调用是 asp.net web 窗体设计器所必需的。
   //
   initializecomponent();
   base.oninit(e);
  }
  
  /// <summary>
  ///  设计器支持所需的方法 - 不要使用代码编辑器
  ///  修改此方法的内容。
  /// </summary>
  private void initializecomponent()
  {
   this.btn_fistpage.click += new system.eventhandler(this.btn_fistpage_click);
   this.btn_prepage.click += new system.eventhandler(this.btn_prepage_click);
   this.btn_nextpage.click += new system.eventhandler(this.btn_nextpage_click);
   this.btn_lastpage.click += new system.eventhandler(this.btn_lastpage_click);
   this.btn_local.click += new system.eventhandler(this.btn_local_click);
   this.load += new system.eventhandler(this.page_load);

  }
  #endregion

  private void enableallbtn()
  {
   this.btn_fistpage.enabled = true;
   this.btn_lastpage.enabled = true;
   this.btn_prepage.enabled  = true;
   this.btn_nextpage.enabled = true;

  }

  private void changebtnstatus(char btnindex)
  {
   switch(btnindex)
   {
    case 'f':
     this.btn_fistpage.enabled = false;
     this.btn_prepage.enabled = false;
     break;
    case 'l':
     this.btn_nextpage.enabled = false;
     this.btn_lastpage.enabled = false;
     break;
    case 'p':
     this.btn_prepage.enabled = false;
     break;
    case 'n':
     this.btn_nextpage.enabled = false;
     break;
   }
  }
  
  private void btn_lastpage_click(object sender, system.eventargs e)
  {
   enableallbtn();

   if( localbtnclick != null)
   {
    localbtnclick(this.pagecount);
   }

   this.changebtnstatus('l');
  }

  private void btn_fistpage_click(object sender, system.eventargs e)
  {
   enableallbtn();
   if( localbtnclick != null)
   {
    localbtnclick(1);
   }

   this.changebtnstatus('f');
  }

  private void btn_prepage_click(object sender, system.eventargs e)
  {
   enableallbtn();

   if (localbtnclick  == null) return;
   if (this.pageindex>1)
    this.pageindex--;
   else
   {
    this.changebtnstatus('p');
    this.changebtnstatus('f');
   }

   this.localbtnclick(this.pageindex);
  
  }

  private void btn_nextpage_click(object sender, system.eventargs e)
  {
   enableallbtn();
   if (localbtnclick  == null) return;
   if (this.pageindex<this.pagecount)
    this.pageindex++;
   else
   {
    this.changebtnstatus('n');
    this.changebtnstatus('l');

   }

   this.localbtnclick(this.pageindex);
  }

  private void btn_local_click(object sender, system.eventargs e)
  {
   enableallbtn();
   if (this.pageindex <=1)
   {
    this.tb_pageindex.text = "1";
    this.changebtnstatus('f');
   }
   else
   {
    if(this.pageindex >= this.pagecount )
    {
     this.pageindex = this.pagecount;
     this.changebtnstatus('l');
    }
   }

   if( localbtnclick != null)
    localbtnclick(this.pageindex);
   
  }
 }
}
====================aspx文件=====================================================



 | 首页 | 前页 | 后页 | 末页 |1 go |总页数

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表