·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 从零开始编写自己的C#框架(21)——添加分类类型页面

从零开始编写自己的C#框架(21)——添加分类类型页面

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

从零开始编写自己的C#框架(21)——添加分类类型页面

  页面权限与页面控件权限经过简单的调试后,终于启用起来了,以后大家添加新页面时,就必须按照本章介绍的方法,将你新增的页面注册到系统中,这样才能访问与进行相关操作。

  下面讲讲如何创建一个分类类型的页面。

  分类类型,顾名思义指的是按照一定规律、特点进行归类划分,放到一块的集合。我们开发时这些分类类型,经常用下拉列表来表现,如果有多级分类时,采用的是下拉树列表方式显示。

  普通下拉列表

  

  下拉树列表

  

  下面将介绍如何从创建数据表、修改文件到权限绑定逐个步骤进行说明。

  

  首先,我们先要创建好数据表

  我们打开数据字典,按数据字典中的格式,创建一个广告位置管理表

  然后打开大神July提供的SQL语句生成工具,生成数据表创建语句

  运行ExcelToSQLString2.91_sql.exe,选择《数据字典》的文件路径,设置想要生成SQL语句的表格名称,然后点击运行

  生成下面语句

  将生成的语句放到SQL的查询分析器中执行,生成数据表(见下图已生成的数据表)

  打开解决方案,找到数据层的SubSonic文件夹,按下图进行选择后,点击右键,找到“运行自定义工具”,点击重新运行生成数据层模板类

  找到逻辑层的SubSonic文件夹,按下图进行选择后,点击右键,找到“运行自定义工具”,点击重新运行生成逻辑层模板类

  通过以上操作,已经帮我们生成了底层我们需要调用到的常用实体和函数了,下面接着创建相关文件

  为了方便管理,我们在UI层后端管理文件夹(WebManage)中创建一个AdvertisingPositions文件夹,用于存放广告管理的相关文件

  已创建好文件夹

  打开Informations文件夹,将InformationClassList.aspx复制到AdvertisingPositions文件夹中(因为这两个文件的功能比较相似,所以直接复制过来修改)

  将InformationClassList.aspx改名为AdvertisingPositionList.aspx

  打开AdvertisingPositionList.aspx与AdvertisingPositionList.aspx.cs文件,按下面方式进行替换

  将页面中的“InformationClass”替换成“AdvertisingPosition”

  将页面中的“信息分类”替换为“广告位置”

  找到AdvertisingPositionList.aspx.cs文件的命名空间,将Informations替换成AdvertisingPositions,如下图

  同样找到AdvertisingPositionList.aspx文件也进行同面的替换

  经过替换,页面大体的功能就完成了。

  打开AdvertisingPositionList.aspx文件,将Grid中想要显示的列重新进行设置绑定(按下面内容进行修改,具体怎么使用FineUI,大家可以登陆FineUI官网查看在线示例,或者先按我代码中的内容尝试对控件属性进行增改操作后刷新页面,查看修改后的效果,弄上几个就很容易明白怎么使用了)

 1             <f:Grid ID="Grid1" Title="广告位置列表" EnableFrame="false" EnableCollapse="true" AllowSorting="true" 2             PageSize="15" ShowBorder="true" ShowHeader="False" AllowPaging="true" runat="server" EnableCheckBoxSelect="True" DataKeyNames="Id" EnableColumnLines="true" 3             OnPageIndexChange="Grid1_PageIndexChange" OnPReRowDataBound="Grid1_PreRowDataBound" OnRowCommand="Grid1_RowCommand"> 4                 <Columns> 5                     <f:BoundField DataField="Id" HeaderText="位置ID" Width="50px" /> 6                     <f:TemplateField HeaderText="位置图" Width="60px"> 7                         <ItemTemplate> 8                             <%# Eval("MapImg").ToString().Length > 5 ? "<a href='" + Eval("MapImg").ToString() + "' target=\"_blank\" class='PicToolTip'><img src='" + DirFileHelper.GetFilePathPostfix(Eval("MapImg")+ "", "s") + "'></a>" : ""%> 9                         </ItemTemplate>10                     </f:TemplateField>11                     <f:BoundField Width="150px" DataField="Name" DataFormatString="{0}" DataSimulateTreeLevelField="Depth" HeaderText="名称" />12                     <f:BoundField DataField="KeyWord" HeaderText="关键字" Width="100px" />13                     <f:BoundField DataField="Width" HeaderText="宽" />14                     <f:BoundField DataField="Height" HeaderText="高" />15                     <f:TemplateField HeaderText="排序" Width="100px">16                         <ItemTemplate>17                             <asp:TextBox ID="tbSort" runat="server" Width="50px" Text='<%# Eval("Sort") %>' AutoPostBack="false"></asp:TextBox>18                         </ItemTemplate>19                     </f:TemplateField>20                     <f:LinkButtonField HeaderText="是否显示" Icon="BulletCross" TextAlign="Center" ToolTip="点击修改是否显示" ColumnID="IsDisplay" CommandName="IsDisplay" />21                     <f:BoundField DataField="Depth" HeaderText="级别层次" TextAlign="Center" />22                     <f:LinkButtonField HeaderText="操作" TextAlign="Center" ToolTip="点击修改当前记录" ColumnID="ButtonEdit" CommandName="ButtonEdit" />23                 </Columns>24             </f:Grid>
View Code

  打开AdvertisingPositionList.aspx.cs文件,我们会看到一些调用函数不存在或是提示出错,那么我们就动手创建或修改一下就可以了

  由于绑定下拉列表函数我们的模板没有生成,所以就手动创建一下

  同理,我们按InformationClassBll逻辑类的内容,创建AdvertisingPositionBll逻辑类

 1 using System; 2 using System.Collections.Generic; 3 using System.Web.UI; 4 using DotNet.Utilities; 5 using Solution.Dataaccess.DataModel; 6  7 /*********************************************************************** 8  *   作    者:AllEmpty(陈焕)-- [email protected] 9  *   博    客:http://www.cnblogs.com/EmptyFS/10  *   技 术 群:32736070811  *  12  *   创建日期:2014-07-0713  *   文件名称:AdvertisingPositionBll.cs14  *   描    述:广告位置管理逻辑类15  *             16  *   修 改 人:17  *   修改日期:18  *   修改原因:19  ***********************************************************************/20 namespace Solution.Logic.Managers21 {22     /// <summary>23     /// AdvertisingPositionBll逻辑类24     /// </summary>25     public partial class AdvertisingPositionBll : LogicBase26     {27         /***********************************************************************28          * 自定义函数                                                          *29          ***********************************************************************/30 31         #region 自定义函数32 33         #region 绑定广告位置下拉列表34         /// <summary>35         /// 绑定广告位置下拉列表——只显示一级广告位置36         /// </summary>37         public void BandDropDownList(Page page, FineUI.DropDownList ddl)38         {39             var dt = DataTableHelper.GetFilterData(GetDataTable(), AdvertisingPositionTable.ParentId, "0", AdvertisingPositionTable.Sort, "desc");40 41             //显示值42             ddl.DataTextField = AdvertisingPositionTable.Name;43             //绑定Id44             ddl.DataValueField = AdvertisingPositionTable.Id;45 46             //绑定数据源47             ddl.DataSource = dt;48             ddl.DataBind();49             ddl.Items.Insert(0, new FineUI.ListItem("请选择广告位置", "0"));