好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

步步为营 .NET三层架构解析 八、UI的设计(GridView的设计及其分页)

步步为营 .NET三层架构解析 八、UI的设计(GridView的设计及其分页)

这次我们设计员工操作列表Custom.aspx和部门操作列表Departmant.aspx的设计.以及如何设计GridView的分页功能.

先调用BLL设计方法获取数据的List列表,转换成PagedDataSource,再设置PagedDataSource属性来实现分页功能.

先看Custom.aspx的设计:

<div style= "text-align: center" >

         <asp:GridView ID= "gvCustom"   DataKeyNames= "ID"

             OnRowDeleting= "GridView_RowDeleting"   runat= "server"   CellPadding= "4"

             ForeColor= "#333333"   GridLines= "None"   HorizontalAlign= "Center"   Width= "98%"

             CellSpacing= "1"   AutoGenerateColumns= "False" >

             <FooterStyle BackColor= "#507CD1"   Font-Bold= "True"   ForeColor= "White"   />

             <RowStyle BackColor= "#EFF3FB"   HorizontalAlign= "Center"   />

             <EditRowStyle BackColor= "#2461BF"   Font-Italic= "True"   HorizontalAlign= "Center"   VerticalAlign= "Middle"   />

             <SelectedRowStyle BackColor= "#D1DDF1"   Font-Bold= "True"   ForeColor= "#333333"   />

             <PagerStyle BackColor= "#2461BF"   ForeColor= "White"   HorizontalAlign= "Center"   />

             <HeaderStyle BackColor= "Silver"   Font-Bold= "True"   ForeColor= "White"   Font-Size= "12px"   HorizontalAlign= "Center"   />

             <AlternatingRowStyle BackColor= "White"   />

             <Columns>

                 <asp:BoundField DataField= "id"   HeaderText= "ID"   />

                 <asp:BoundField DataField= "ename"   HeaderText= "帐户名"   />

                 <asp:BoundField DataField= "cname"   HeaderText= "姓名"   />

                 <asp:BoundField DataField= "age"   HeaderText= "年龄"   />

                 <asp:BoundField DataField= "departname"   HeaderText= "部门"   />

                 <asp:HyperLinkField DataTextField= "id"   DataTextFormatString= "修改"

                     HeaderText= "修改"   DataNavigateUrlFields= "id"   DataNavigateUrlFormatString= "Updatecustom.aspx?id={0}"   />

                 <asp:TemplateField HeaderText= "删除" >

                     <ItemTemplate>

                         <asp:LinkButton ID= "LinkButton2"   OnClientClick= "return confirm('您确认删除该记录吗?');"   runat= "server"   CommandName= "Delete"   Font-Names= "宋体"   Font-Strikeout= "False"   Font-Underline= "False"   ForeColor= "Black" >删除</asp:LinkButton>         

                     </ItemTemplate>

                 </asp:TemplateField>

             </Columns>

         </asp:GridView>

         <asp:Button ID= "btnAddUser"   runat= "server"   onclick= "btnAddUser_Click"

             Text= "添加用户"   />

         当前页码为:<asp:Label ID= "labPage"   runat= "server"   Text= "1" ></asp:Label> 

         总页码为:<asp:Label ID= "labBackPage"   runat= "server" ></asp:Label>

             

         <asp:LinkButton ID= "lnkbtnOne"   runat= "server"   OnClick= "lnkbtnOne_Click" >第一页</asp:LinkButton>

         <asp:LinkButton ID= "lnkbtnUp"   runat= "server"   OnClick= "lnkbtnUp_Click" >上一页</asp:LinkButton>

          <asp:LinkButton ID= "lnkbtnNext"   runat= "server"   OnClick= "lnkbtnNext_Click" >下一页</asp:LinkButton>

         <asp:LinkButton ID= "lnkbtnBack"   runat= "server"   OnClick= "lnkbtnBack_Click" >最后一页</asp:LinkButton>

     </div>

现来看下Custom.aspx.cs的设计:

记在先加上:

using   BLL;

using   Model;

然后再:

public   partial   class   Custom : PageBase

{

     protected   void   Page_Load( object   sender, EventArgs e)

     {

 

         if   (!Page.IsPostBack)

         {

             //验证权限

             IsAdmin();

             BinData();

         }

 

     }

     /// <summary>

     /// 绑定数据

     /// </summary>

     private   void   BinData()

     {

         customSystem CustomSystem =  new   customSystem();

         List<custom> Customlist =  new   List<custom>();

         //调用BLL方法获取列表

         Customlist = CustomSystem.GetCustom();

         int   curpage = Convert.ToInt32( this .labPage.Text);

         //设计分页

         PagedDataSource ps =  new   PagedDataSource();

         ps.DataSource = Customlist;

         ps.AllowPaging =  true ;

         //设置页面的条数

         ps.PageSize = 16;

         ps.CurrentPageIndex = curpage - 1;

         this .lnkbtnUp.Enabled =  true ;

         this .lnkbtnNext.Enabled =  true ;

         this .lnkbtnBack.Enabled =  true ;

         this .lnkbtnOne.Enabled =  true ;

         if   (curpage == 1)

         {

             this .lnkbtnOne.Enabled =  false ;

             this .lnkbtnUp.Enabled =  false ;

 

         }

         if   (curpage == ps.PageCount)

         {

             this .lnkbtnNext.Enabled =  false ;

             this .lnkbtnBack.Enabled =  false ;

 

         }

         this .labBackPage.Text = Convert.ToString(ps.PageCount);

         //绑定数据源

         gvCustom.DataSource = ps;

         gvCustom.DataBind();

     }

     /// <summary>

     ///  删除一条数据

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   GridView_RowDeleting( object   sender, GridViewDeleteEventArgs e)

     {

         int   nid = Int32.Parse(gvCustom.DataKeys[e.RowIndex].Value.ToString());

         customSystem CustomSystem =  new   customSystem();

         CustomSystem.Deletecustom(nid);

         BinData();

     }

     /// <summary>

     ///  第一页

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   lnkbtnOne_Click( object   sender, EventArgs e)

     {

         this .labPage.Text =  "1" ;

         BinData();

     }

     /// <summary>

     /// 上一页

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   lnkbtnUp_Click( object   sender, EventArgs e)

     {

         this .labPage.Text = Convert.ToString(Convert.ToInt32( this .labPage.Text) - 1);

         BinData();

     }

     /// <summary>

     /// 下一页

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   lnkbtnNext_Click( object   sender, EventArgs e)

     {

         this .labPage.Text = Convert.ToString(Convert.ToInt32( this .labPage.Text) + 1);

         BinData();

     }

     /// <summary>

     /// 最后一页

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   lnkbtnBack_Click( object   sender, EventArgs e)

     {

         this .labPage.Text =  this .labBackPage.Text;

         BinData();

 

     }

     /// <summary>

     /// 跳转到增加页面

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   btnAddUser_Click( object   sender, EventArgs e)

     {

         Response.Redirect( "Register.aspx" );

     }

}

再来看下Departmant.aspx的设计:

<div style= "text-align: center" >

        <asp:GridView ID= "GridView1"   runat= "server"   AutoGenerateColumns= "False"   CellPadding= "4"

            CellSpacing= "1"   DataKeyNames= "ID"   ForeColor= "#333333"   GridLines= "None"   HorizontalAlign= "Center"

            OnRowDeleting= "GridView_RowDeleting"   Width= "98%" >

            <FooterStyle BackColor= "#507CD1"   Font-Bold= "True"   ForeColor= "White"   />

            <RowStyle BackColor= "#EFF3FB"   HorizontalAlign= "Center"   />

            <EditRowStyle BackColor= "#2461BF"   Font-Italic= "True"   HorizontalAlign= "Center"   VerticalAlign= "Middle"   />

            <SelectedRowStyle BackColor= "#D1DDF1"   Font-Bold= "True"   ForeColor= "#333333"   />

            <PagerStyle BackColor= "#2461BF"   ForeColor= "White"   HorizontalAlign= "Center"   />

            <HeaderStyle BackColor= "Silver"   Font-Bold= "True"   Font-Size= "12px"   ForeColor= "White"

                HorizontalAlign= "Center"   />

            <AlternatingRowStyle BackColor= "White"   />

            <Columns>

                <asp:BoundField DataField= "id"   HeaderText= "ID"   />

                <asp:BoundField DataField= "departname"   HeaderText= "部门名称"   />

                <asp:BoundField DataField= "description"   HeaderText= "部门描述"   />

                <asp:HyperLinkField DataNavigateUrlFields= "id"   DataNavigateUrlFormatString= "Updatedepart.aspx?id={0}"

                    DataTextField= "id"   DataTextFormatString= "修改"   HeaderText= "修改"   />

                <asp:TemplateField HeaderText= "删除" >

                    <ItemTemplate>

                        <asp:LinkButton ID= "LinkButton2"   runat= "server"   CommandName= "Delete"   Font-Names= "宋体"

                            Font-Strikeout= "False"   Font-Underline= "False"   ForeColor= "Black"   OnClientClick= "return confirm('您确认删除该记录吗?');" >删除</asp:LinkButton> 

                    </ItemTemplate>

                </asp:TemplateField>

            </Columns>

        </asp:GridView>

        <asp:Button ID= "btnAddDepartment"   runat= "server"   onclick= "btnAddDepartment_Click"

            Text= "添加部门"   />

        当前页码为:<asp:Label ID= "labPage"   runat= "server"   Text= "1" ></asp:Label>  总页码为:<asp:Label

            ID= "labBackPage"   runat= "server" ></asp:Label>

            

        <asp:LinkButton ID= "lnkbtnOne"   runat= "server"   OnClick= "lnkbtnOne_Click" >第一页</asp:LinkButton>

        <asp:LinkButton ID= "lnkbtnUp"   runat= "server"   OnClick= "lnkbtnUp_Click" >上一页</asp:LinkButton>

         <asp:LinkButton ID= "lnkbtnNext"   runat= "server"   OnClick= "lnkbtnNext_Click" >下一页</asp:LinkButton>

        <asp:LinkButton ID= "lnkbtnBack"   runat= "server"   OnClick= "lnkbtnBack_Click" >最后一页</asp:LinkButton> 

     

    </div>

然后再看Departmant.aspx.cs的设计:

也一样要先加上:

using   BLL;

using   Model;

然后再:

public   partial   class   departmant : PageBase

{

     protected   void   Page_Load( object   sender, EventArgs e)

     {

         if   (!Page.IsPostBack)

         {

             //验证权限

             IsAdmin();

             BinData();

 

         }

     }

     /// <summary>

     /// 绑定数据

     /// </summary>

     private   void   BinData()

     {

         departmentSystem DepartmentSystem =  new   departmentSystem();

         List<department> Departmentlist =  new   List<department>();

         //调用BLL方法获取列表

         Departmentlist = DepartmentSystem.GetDepartment();

         int   curpage = Convert.ToInt32( this .labPage.Text);

         //设计分页

         PagedDataSource ps =  new   PagedDataSource();

         ps.DataSource = Departmentlist;

         ps.AllowPaging =  true ;

         //设置页面的条数

         ps.PageSize = 16;

         ps.CurrentPageIndex = curpage - 1;

         this .lnkbtnUp.Enabled =  true ;

         this .lnkbtnNext.Enabled =  true ;

         this .lnkbtnBack.Enabled =  true ;

         this .lnkbtnOne.Enabled =  true ;

         if   (curpage == 1)

         {

             this .lnkbtnOne.Enabled =  false ;

             this .lnkbtnUp.Enabled =  false ;

 

         }

         if   (curpage == ps.PageCount)

         {

             this .lnkbtnNext.Enabled =  false ;

             this .lnkbtnBack.Enabled =  false ;

 

         }

         this .labBackPage.Text = Convert.ToString(ps.PageCount);

         //绑定数据源

         GridView1.DataSource = ps;

         GridView1.DataBind();

     }

     /// <summary>

     /// 删除一条数据

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   GridView_RowDeleting( object   sender, GridViewDeleteEventArgs e)

     {

         int   nid = Int32.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());

         departmentSystem DepartmentSystem =  new   departmentSystem();

         DepartmentSystem.Deletedepart(nid);

         BinData();

     }

     /// <summary>

     /// 第一页

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   lnkbtnOne_Click( object   sender, EventArgs e)

     {

         this .labPage.Text =  "1" ;

         BinData();

     }

     /// <summary>

     /// 上一页

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   lnkbtnUp_Click( object   sender, EventArgs e)

     {

         this .labPage.Text = Convert.ToString(Convert.ToInt32( this .labPage.Text) - 1);

         BinData();

     }

     /// <summary>

     /// 下一页

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   lnkbtnNext_Click( object   sender, EventArgs e)

     {

         this .labPage.Text = Convert.ToString(Convert.ToInt32( this .labPage.Text) + 1);

         BinData();

     }

     /// <summary>

     /// 最后一页

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   lnkbtnBack_Click( object   sender, EventArgs e)

     {

         this .labPage.Text =  this .labBackPage.Text;

         BinData();

 

     }

     /// <summary>

     /// 跳转到增加页面

     /// </summary>

     /// <param name="sender"></param>

     /// <param name="e"></param>

     protected   void   btnAddDepartment_Click( object   sender, EventArgs e)

     {

         Response.Redirect( "ADDdepart.aspx" );

     }

}

到这里我们一个简单的三层架构的应用就设计完了,可能权限的设计有点薄弱,改天我再专门讲解下权限的设计,感谢大家一直以来对我关注和支持,同时也感谢大家的拍砖.

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于步步为营 .NET三层架构解析 八、UI的设计(GridView的设计及其分页)的详细内容...

  阅读:44次