頁面權限與頁面控件權限通過簡單的調試後,終於啓用起來了,之後你們添加新頁面時,就必須按照本章介紹的方法,將你新增的頁面註冊到系統中,這樣才能訪問與進行相關操做。sql
下面講講如何建立一個分類類型的頁面。數據庫
分類類型,顧名思義指的是按照必定規律、特色進行歸類劃分,放到一塊的集合。咱們開發時這些分類類型,常常用下拉列表來表現,若是有多級分類時,採用的是下拉樹列表方式顯示。後端
普通下拉列表數組
下拉樹列表緩存
下面將介紹如何從建立數據表、修改文件到權限綁定逐個步驟進行說明。安全
首先,咱們先要建立好數據表服務器
咱們打開數據字典,按數據字典中的格式,建立一個廣告位置管理表併發
而後打開大神July提供的SQL語句生成工具,生成數據表建立語句框架
運行ExcelToSQLString2.91_sql.exe,選擇《數據字典》的文件路徑,設置想要生成SQL語句的表格名稱,而後點擊運行ide
生成下面語句
將生成的語句放到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>
打開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.cnblogs.com/EmptyFS/ 10 * 技 術 羣:327360708 11 * 12 * 建立日期:2014-07-07 13 * 文件名稱:AdvertisingPositionBll.cs 14 * 描 述:廣告位置管理邏輯類 15 * 16 * 修 改 人: 17 * 修改日期: 18 * 修改緣由: 19 ***********************************************************************/ 20 namespace Solution.Logic.Managers 21 { 22 /// <summary> 23 /// AdvertisingPositionBll邏輯類 24 /// </summary> 25 public partial class AdvertisingPositionBll : LogicBase 26 { 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 //綁定Id 44 ddl.DataValueField = AdvertisingPositionTable.Id; 45 46 //綁定數據源 47 ddl.DataSource = dt; 48 ddl.DataBind(); 49 ddl.Items.Insert(0, new FineUI.ListItem("請選擇廣告位置", "0")); 50 ddl.SelectedValue = "0"; 51 } 52 53 /// <summary> 54 /// 綁定廣告位置下拉列表——顯示全部 55 /// </summary> 56 public void BandDropDownListShowAll(Page page, FineUI.DropDownList ddl) 57 { 58 //設置排序 59 var sortList = new List<string>(); 60 sortList.Add(AdvertisingPositionTable.Depth); 61 sortList.Add(AdvertisingPositionTable.Sort); 62 63 //篩選記錄 64 var dt = GetDataTable(false, 0, null, 0, 0, null, sortList); 65 66 try 67 { 68 //整理出有層次感的數據 69 dt = DataTableHelper.DataTableTidyUp(dt, AdvertisingPositionTable.Id, AdvertisingPositionTable.ParentId, 0); 70 71 ddl.EnableSimulateTree = true; 72 73 //顯示值 74 ddl.DataTextField = AdvertisingPositionTable.Name; 75 //綁定Id 76 ddl.DataValueField = AdvertisingPositionTable.Id; 77 //數據層次 78 ddl.DataSimulateTreeLevelField = AdvertisingPositionTable.Depth; 79 //綁定數據源 80 ddl.DataSource = dt; 81 ddl.DataBind(); 82 ddl.SelectedIndex = 0; 83 84 ddl.Items.Insert(0, new FineUI.ListItem("請選擇廣告位置", "0")); 85 ddl.SelectedValue = "0"; 86 } 87 catch (Exception e) 88 { 89 //