基础框架之Controls控件说明

本文详细介绍了自定义WEB控件LRepeater、AspNetPage、HeadMenuControl和WebTabControl的功能及使用方法。LRepeater扩展了Repeater控件,支持虚拟分页、排序等功能;AspNetPage实现了分页功能;HeadMenuControl提供了页面顶部菜单和按钮,并支持权限控制;WebTabControl增强了Tab页切换体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

            (文/馒头)
本篇文章针对Controls控件里封装的自定义WEB控件一一说明。

      1.LRepeater:基于Repeater的扩展控件
      前台使用如下:  

< kilo:LRepeater  width ="100%"  ID ="repeaterlist"  VirtualPage ="true" runat ="server"   SORT ="WorkStartDate"  OrderBy ="1"    OnSortEvent ="Repeater_Sort"   />

       除了Repeater自身的属性外,扩展了以下功能:
       (1) VirtualPage,虚拟分页
       当一次性从数据库读取所有的记录,然后让LRepeater自己分页,那么需要将VirtualPage设置为"false";
       如果数据库里已做分页处理,那么VirtualPage则必须为"true";
       如果需要显示所有的数据,不管有无分页,则直接将VirtualPage设置为"true"。


       (2)SORT,排序字段
       Sort表示默认的排序方式,这个需要配合OnSortEvent一起使用,当多个字段排序时,采用Name_Age_Height 的方式,用下划线将多个字段连接起来。

       (3)OrderBy,排序方向
       OrderBy="1"表示倒序,DESC方向;OrderBy="0"表示顺序,即ASC方向。

       (4)OnSortEvent,排序事件
        后台代码如下:

        protected   void  Repeater_Sort( object  sender, EventArgs e)
        {
            ListBind();
        }
        ListBind():
            PageModel pmodel 
=   new  PageModel
            {
                TableName 
=   " UserList " ,
                ReturnFields 
=   " * " ,
                Where 
=  strwhere,
                PageSize 
=   this .AspNetPager1.PageSize,
                PageIndex 
=   this .AspNetPager1.CurrentPageIndex,
                Orderfld 
=   this .repeaterlist.SORT,
                OrderType 
=   this .repeaterlist.OrderBy
            };

         前台,采用LReapeater里面的<asp:linkbutton />控件进行触发OnSort事件,一般情况下,LReapeater需要与AspNetPage配合使用。
       相信大家都明白repeater做数据控件的优点和缺点,本人比较赞同采用repeater,因为可以很好管理显示的格式。
       示例图片(LReapeater + AspNetPage):

  
      2.AspNetPage:分页控件
      本分页控件的源码直接复制网上的AspNetPage代码,为了使用方便,没有单独使用,而是和其他控件封装到一起。
      前台代码如下:

< kilo:AspNetPager  ID ="AspNetPager1"  runat ="server" OnPageChanged ="Pager_PageChanged"   />

             后台代码如下:

    protected   void  Pager_PageChanged( object  sender, EventArgs e)
    {
        ListBind();
    }
    
private   void  ListBind()
    {
        PageModel pmodel 
=   new  PageModel
        {
            TableName 
=   " inventorylist " ,
            ReturnFields 
=   " * " ,
            PageSize 
=   this .AspNetPager1.PageSize,
            PageIndex 
=   this .AspNetPager1.CurrentPageIndex,
            Orderfld 
=   " PartNo " ,
            OrderType 
=   0
        };
        pmodel.Where 
=   " Where [Type] = ' "   +  type  +   " ' " ;

        
this .repeaterlist.CurrentPageIndex  = this .AspNetPager1.CurrentPageIndex  -   1 ;
        
this .repeaterlist.DataSource  =   new  DataMapper( " base " ).GetPagedDataTable(pmodel).DefaultView;
        
this .repeaterlist.DataBind();
        
this .AspNetPager1.RecordCount  =  pmodel.RecordCount;
    }    

 
     3.HeadMenuControl:页面顶部信息菜单控件
      本控件是采用博客园里一同学的开源控件,在它的技术上进行了封装,扩展了两个功能,
      (1)Tab标签:
      Tab的数据与WebTabControl配合使用,当Tab页切换时,按钮也会更这切换,这样在多个Tab页时,按钮不会相互冲突。
      (2)OnCommand事件:
      HeadMenuButtonItem按钮可以触发Command事件,使此控件成为真正的WebForm控件,只有ButtonUrlType= "Command"时,才会触发Command事件。
      ButtonUrlType目前有四种方式:Command,URL,Javascript,VBScript。
      ButtonPopedom为功能按钮,这个与权限系统进行天衣无缝的配合。只有拥有此权限的身份访问页面时,才会显示操作按钮。

      其他的比较简单,一看就知道了。

      前台代码如下:

< kilo:HeadMenuWebControls  ID ="HeadMenuWebControls1"  runat ="server"
ButtonList-Capacity
="4"     OnCommand ="HeadMenuWebControls1_Command"  HeadOPTxt ="库存报表"   HeadTitleTxt ="库存报表"  HeadHelpTxt ="库存报表" >
    
< kilo:HeadMenuButtonItem  ButtonPopedom ="Print"  Tab ="0" ButtonIcon ="xls.gif"  ButtonUrlType ="Command"  CommandName ="excel"     ButtonName ="导出当前库存"  ButtonVisible ="true"   />
  
< kilo:HeadMenuButtonItem  ButtonPopedom ="Print"  Tab ="1" ButtonIcon ="xls.gif"  ButtonUrlType ="Command"   CommandName ="detail"     ButtonName ="导出当前明细"  ButtonVisible ="true"   />
</ kilo:HeadMenuWebControls >

      后台代码如下:

        protected   void  HeadMenuWebControls1_Command( object  sender, CommandEventArgs e)
        {
            
switch (e.CommandName)
            {
                
case   " detail " :
                    iPage.DataTable2Excel(
this .LoadDataTable2(),  " 当前明 " );
                     break ;
                
case   " excel " :
                    iPage.DataTable2Excel(
this .LoadDataTable(),  " 当前库 " );
                     break ;
            }
        }

 
     示例图片:


      4.WebTabControl,Tab切换页控件:
      此控件源码同上,在其基础上增加了控件HeadMenuWebControls里的按钮关联显示功能,使操作更加具有人性化。使用也非常简单,不再多说。
    示例图片:


   整体效果:


点此返回:基于ORM的快速开发框架

转载于:https://www.cnblogs.com/KiloNet/articles/1556175.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值