网上购物系统(Task008)——用户界面层公共函数集WebUtility

源代码:13033480群共享

频繁的数据库操作,需要一个公共的数据库操作函数集(DBUtility中的SQLHelper.cs);频繁的用户界面操作,也需要一个公共函数集WebUtility.cs。因为频繁,这个类及类中的函数,也做成了静态的。

一、App_Code中添加类WebUtility.cs并在类中添加函数GetCategoryName()

using System;
using System.Configuration;
using System.Web;
using System.Web.Caching;

using WestGarden.DAL;

namespace WestGarden.Web
{
    public static class WebUtility
    {
        private const string CATEGORY_NAME_KEY = "category_name_{0}";
        private static readonly bool enableCaching = bool.Parse(ConfigurationManager.AppSettings["EnableCaching"]);

        public static string GetCategoryName(string categoryId)
        {
            Category category = new Category();
            if (!enableCaching)
                return category.GetCategory(categoryId).Name;

            string cacheKey = string.Format(CATEGORY_NAME_KEY, categoryId);

            string data = (string)HttpRuntime.Cache[cacheKey];
            if (data == null)
            {
                int cacheDuration = int.Parse(ConfigurationManager.AppSettings["CategoryCacheDuration"]);

                data = category.GetCategory(categoryId).Name;

                HttpRuntime.Cache.Add(cacheKey, data, null, DateTime.Now.AddHours(cacheDuration), Cache.NoSlidingExpiration, CacheItemPriority.High, null);
            }
            return data;
        }
    }
}


1、这个函数功能是获取类别名称,获取类别需要进行一下判断,如果允许Cache缓存,就从Cache中获取;如果不允许,就从数据库中查询。因些,使用这个函数需要在Web.config中添加两个设置,是否允许Cache以及Cache的生命期。

<add key="EnableCaching" value="true"/>

<add key="CategoryCacheDuration" value="12"/>


 

2、这个函数如果从数据库进行查询,需要调用DAL中的GetCategory()函数,为此,需要在Category.cs中添加函数GetCategory()

        public CategoryInfo GetCategory(string categoryId)
        {
            CategoryInfo category = null;

            SqlParameter parm = new SqlParameter(PARM_CATEGORY_ID, SqlDbType.VarChar, 20);
            parm.Value = categoryId;

            using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CATEGORIES, parm))
            {
                if (rdr.Read())
                    category = new CategoryInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2));
                else
                    category = new CategoryInfo();
            }
            return category;
        }


 

二、Web添加母版MasterPage.master

1、窗体页代码

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="WestGarden.Web.MasterPage" %>
<%@ Register Src="Controls/NavigationControl.ascx" TagName="NavigationControl" TagPrefix="WestGardenControl" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>The .NET Pet Shop</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Panel ID="panFocus" runat="server" DefaultButton="btnSearch">
            <table align="center" border="0" cellpadding="0" cellspacing="0" width="780">
                <tr valign="top">
                    <td rowspan="2">
                        <img src="Images/Comm_Images/Logo_home.jpg" alt="home" /></td>
                    <td class="homeBgSearch" height="25" width="141">
                        <asp:TextBox ID="txtSearch" runat="server" CssClass="homeSearchBox" Width="130px"></asp:TextBox></td>
                    <td class="homeBgSearch" width="50">
                        <asp:ImageButton ID="btnSearch" runat="server" AlternateText="Search" CausesValidation="false"
                            CssClass="paddingSearchicon" ImageUrl="Images/Comm_Images/button-search.gif" /></td>
                    <td class="homeBgSearch" width="50">
                        <asp:LoginStatus ID="lgnStatus" runat="server" CssClass="homeLink" LoginText="登 录"
                            LogoutAction="Redirect" LogoutPageUrl="~/Default.aspx" LogoutText="退 出" />
                    </td>
                    <td width="66">
                    </td>
                </tr>
                <tr>
                    <td colspan="3">
                        <img src="Images/Comm_Images/KFC.JPG" /></td>
                    <td width="66">
                    </td>
                </tr>
            </table>
        </asp:Panel>
        <table align="center" border="0" cellpadding="0" cellspacing="0" width="780">
            <tr>
                <td colspan="4">
                    <img src="Images/Comm_Images/spacer.gif" height="5" /></td>
            </tr>
            <tr>
                <td style=" 10px">
                     </td>
                <td width="105">
                     </td>
                <td width="645">
                </td>
                <td width="20">
                     </td>
            </tr>
            <tr>
                <td style=" 10px">
                     </td>
                <td>
                     </td>
                <td class="pageHeader">
                    <asp:Literal ID="ltlHeader" runat="server"></asp:Literal>
                </td>
                <td>
                     </td>
            </tr>
            <tr>
                <td style=" 10px; height: 19px;">
                </td>
                <td style="height: 19px">
                </td>
                <td class="dottedLine" style="height: 19px">
                </td>
                <td style="height: 19px">
                     </td>
            </tr>
            <tr>
                <td valign="top" style=" 10px">
                     </td>
                <td valign="top">
                    <WestGardenControl:NavigationControl ID="Categories" runat="server"></WestGardenControl:NavigationControl>
                </td>
                <td bgcolor="#FFFFFF" valign="top">
                    <asp:ContentPlaceHolder ID="cphPage" runat="server">
                    </asp:ContentPlaceHolder>
                </td>
                <td height="250">
                     </td>
            </tr>
            <tr>
                <td style=" 10px">
                     </td>
                <td>
                     </td>
                <td class="footer">
                    <table width="100%">
                        <tr>
                            <td style="height: 32px">
                                Version 1.0 版权所有:西园电脑工作室.QQ交流群:13033480</td>
                            <td align="right" style="padding-right: 5px; height: 32px;">
                                <a href="http://blog.csdn.com/yousuosi" target="_blank">
                                    <img alt="西园软件制作" border="0" src="Images/Comm_Images/vertigo-icon.jpg" /></a></td>
                        </tr>
                    </table>
                </td>
                <td>
                     </td>
            </tr>
        </table>
    </form>
</body>
</html>


 

2、代码页代码

using System;
using System.Web;
using System.Web.UI.WebControls;

namespace WestGarden.Web 
{
    public partial class MasterPage : System.Web.UI.MasterPage 
    {
        private const string HEADER_PREFIX = "肯德基订餐系统——西园工作室 :: {0}";

        protected void Page_PreRender(object sender, EventArgs e) 
        {	
		    ltlHeader.Text = Page.Header.Title;
            Page.Header.Title = string.Format(HEADER_PREFIX, Page.Header.Title);          
        }
    }
}


 

三、为已建窗体Items.aspx应用母版,并在后台添加代码,设置窗体标题。

1、应用母版代码:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Items.aspx.cs" Inherits="WestGarden.Web.Items" %>

<%@ Register Src="Controls/ItemssControl.ascx" TagName="ItemsControl" TagPrefix="WestGardenControl" %>

<asp:Content ID="cntPage" ContentPlaceHolderID="cphPage" runat="Server" EnableViewState="false">   
    <WestGardenControl:ItemsControl ID="ItemsControl1" runat="server" />
</asp:Content>


 

2、设置窗体标题代码:

using WestGarden.DAL;

namespace WestGarden.Web
{
    public partial class Items : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.Title = WebUtility.GetCategoryName(Request.QueryString["categoryId"]);
        }
    }
}


版权所有©2012,西园电脑工作室.欢迎转载,转载请注明出处.更多文章请参阅博客http://blog.csdn.com/yousuosi

原文地址:https://www.cnblogs.com/java20130723/p/3211707.html