欢迎光临极品网,更多、更新的资源信息尽在Jpinw.Com!本站所有信息资源每日更新新的内容,请大家继续关注www.Jpinw.com!如果觉得本站还不错,对您有帮助,别忘了向您的朋友推荐本站!请记好本站网址:http://www.Jpinw.com,网站发展靠大家多多的支持!!!

极品网 极品课件 极品论文 极品文学 极品游戏 极品美容 极品手机资源 极品股票

#
免费资源: 免费域名 | 免费空间 | 免费推广 | 免费邮箱 | 免费硬盘 | 免费论坛 | 免费留言 | 免费统计 | 在线投稿 | 更多...
电脑学院: 操作系统 | 安全相关 | 网页设计 | 编程开发 | 建站经验 | 服务器类 | 黑客攻防 | 菜鸟入门 | 教你网赚 | 更多...
文章导航: 网赚学堂 | 网赚秘笈 | 网赚三维 | 网赚先锋 | 网赚资讯 | 感悟网赚 | 众生百态 | 经典美文 | 范文中心 | 更多...
图酷天下: 时事图酷 | 娱乐图酷 | 搞笑图酷 | 时尚图酷 | 体育图酷 | 另类经典 | 论文资源 | 课件下载 | 文学知识 | 更多...

您现在的位置: 极品网 >> 电脑学院 >> 编程开发 >> 编程综合 >> 教程正文

《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换            【字体:
《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换
作者:佚名    教程来源:不详    点击数:    更新时间:2008-1-1    

 








《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换。
  在Visual Studio中开发Web项目,Web 窗体页由两部分组成:视觉元素(HTML、服务器控件和静态文本)和该页的编程逻辑。 一般将这两个组成部分分别存储在一个单独的文件中。可视元素在一个 .ASPx 文件中创建,而代码位于一个单独的类文件中(.ASPx.vb 或 .ASPx.cs)。或者有时候也会在同一文件中创建视觉元素和代码。

而在ASP.Net Forums的Web窗体页中没有找到我们熟悉的.ASPx.cs文件,也没有发现任何C#代码,取而代之是一个个控件,代码在哪里?!

下面将以login.ASPx为例详细说明ASP.Net Forums是如何实现代码分离和换皮肤的:
首先我们看看login.ASPx在两种皮肤样式下的运行效果
(Theme:default)(Theme:ElectricMidnight)

只是更改了一下ASP.Net Forums的默认皮肤,同样是Login.ASPx,显示的是两种不同的皮肤样式。先回想一下VS.Net中,先不论换皮肤功能,如果我们要实现一个登陆页面,那么我们在ASPx或Ascx页中将输入帐号密码的TextBox、登陆的Button拖入,在编辑区双击Button,写上对Button点击事件处理的代码,多么方便,大部分代码都由VS.Net为我们完成了。

我们再来看Login.ASPx的源码:


<%@ Import Namespace="ASPNetForums.Components" %>
<%@ Register TagPrefix="Forums" Namespace="ASPNetForums.Controls" Assembly="ASPNetForums.Controls" %>
<%@ Register TagPrefix="mp" Namespace="MetaBuilders.WebControls.MasterPages" Assembly="MetaBuilders.WebControls.MasterPages" %>

<mp:ContentContainer runat="server" id="MPContainer" MasterPageFile="~/Themes/MasterPage.ascx">
<mp:Content id="MainContent" runat="server">
<p align="center">
<Forums:NavigationMenu DisplayTitle="true" id="Navigationmenu1" runat="server" />
<br />
<br />
<br />
<Forums:Login runat="server" id="PostView1" />
</p>
</mp:Content>
</mp:ContentContainer>
注:其中 <mp:***> ,这个是一个第三方控件,其目的是为了保证界面的一致性,提取页面间的重复代码。

从源码中我们没有看到任何构成Login.ASPx页面效果的TextBox、Button等基本元素。甚至没有发现一行C#代码,不过如果您对页面控件比较熟悉不难发现原来ASP.Net Forums中将登陆的界面封装为了控件(在此对页面控件并不作专门介绍,如果您对控件相关知识还比较陌生的话,强烈推荐您查阅相关资料或书籍)。 原来登陆界面的实现就是在<Forums:Login runat="server" id="PostView1" />控件中,从
<%@ Register TagPrefix="Forums" Namespace="ASPNetForums.Controls" Assembly="ASPNetForums.Controls" %>
我们可以知道Login控件对应的类应该为:ASPNetForums.Controls.Login,在VS.Net中,切换到类视图,找到ASPNetForums.Controls.Login并转到对应文件:

(该图告诉您如何快速的查找控件对应的文件)
 
从代码中看到的该控件是从SkinnedForumWebControl类继承的:

public class Login : SkinnedForumWebControl {  // 从 SkinnedForumWebControl 基类继承
......
}

我们还是先看看基类SkinnedForumWebControl。
using System;
using System.Drawing;
using System.Collections;
using System.Collections.Specialized;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ASPNetForums;
using ASPNetForums.Components;
using System.ComponentModel;
using System.IO;
using System.Web.Security;
using ASPNetForums.Enumerations;

namespace ASPNetForums.Controls {

[
ParseChildren(true)
]
/// <summary>
/// 几乎ASP.Net Forums中所有控件的基类,继承自WebControl,并实现INamingContainer接口
/// </summary>
public abstract class SkinnedForumWebControl : WebControl, INamingContainer {

ForumContext forumContext = ForumContext.Current;
string skinFilename = null;
string skinName = null;
string returnURL = null;
ForumMode mode = ForumMode.User;


public SkinnedForumWebControl() {

// 使用的皮肤——如果是匿名用户,则使用系统默认样式
//
if (forumContext.User.IsAnonymous) {
skinName = Globals.Skin;
}
else {
skinName = forumContext.User.Theme;
}

}

[1] [2] 下一篇

 

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关教程
    [我的ASP.net学习历程]有关于
    ASP.NET 2.0页面性能的考虑
    ASP.NET 2.0打造购物车和支付
    关于ASP.Net中的时间处理
    基于asp.net的web页面动态控
    ASP.NET ViewState 初探 (3)
    ASP.NET/Perl.NET 数据库访问
    ASP.NET: Connection String
    ASP.NET: HtmlEncode/UrlEnc
    ASP.NET虚拟主机的重大安全隐
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    极品网
    | 设为首页 | 加入收藏 | 友情链接 | 版权声明 |
    极品网

    Copyright 2006 Jpinw.com 极品网

    备案号:浙ICP备07010375号

    极品网