页面权限与页面控件权限经过简单的调试后,终于启用起来了,以后大家添加新页面时,就必须按照本章介绍的方法,将你新增的页面注册到系统中,这样才能访问与进行相关操作。
下面讲讲如何创建一个分类类型的页面。
分类类型,顾名思义指的是按照一定规律、特点进行归类划分,放到一块的集合。我们开发时这些分类类型,经常用下拉列表来表现,如果有多级分类时,采用的是下拉树列表方式显示。
普通下拉列表
下拉树列表
下面将介绍如何从创建数据表、修改文件到权限绑定逐个步骤进行说明。
首先,我们先要创建好数据表
我们打开数据字典,按数据字典中的格式,创建一个广告位置管理表
然后打开大神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(陈焕)-- 1654937@QQ.com 9 * 博 客:http://www.VEVb.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"));
新闻热点
疑难解答