如何制作Asp.Net界面模板

如何制作Asp.Net界面模板,第1张

一 基础知识

C:\Program Files\Microsoft Visual Studio NET \VC#\DesignerTemplates\

其下的NewWebFormCode cs文件是默认的新Asp Net页面的后台代码文件

C:\Program Files\Microsoft Visual Studio NET \VC#\VC#Wizards\CSharpAddWebFormWiz

其下的\Scripts\ \default js文件定义了基本的针对* aspx页面的脚本 *** 作

其下的\Templates\ \WebForm aspx文件定春衡悉义新Asp Net页面的* aspx文件

其下的\Templates\ \Templates inf文件指向了WebForm aspx文件

C:\Program Files\Microsoft Visual Studio NET \VC#\CSharpProjectItems\WebProjectItems\UI

其下的ui vsdir文件定义了模板向导的基本信息

二 制作过程

建立VC#文件夹 其内部结构如下:

VC#\CSharpProjectItems \WebProjectItems\Itabby界面模板\

ItabbyAddCommonFormWiz vsz 内容如下

VSWIZARD                                                   Wizard=VsWizard VsWizardEngine                                                   Param= WIZARD_NAME = ItabbyAddCommonFormWiz                                                   Param= WIZARD_UI = FALSE                                                   Param= PROJECT_TYPE = CSPROJ                                 

ui vsdir 内容如下

ItabbyAddCommonFormWiz vsz|{FAE EC F d BF B C F EFBC}|Itabby通用模板| |# |{FAE EC F d BF B C F EFBC}| | |ItabbyCommonForm aspx

VC#\DesignerTemplates\ \

NewWebFormCode cs 修改微软NewWebFormCode cs而成

VC#\VC#Wizards\ItabbyAddCommonFormWiz\Scripts\ \

default js 修改微软default js而成

VC#\VC#Wizards\ItabbyAddCommonFormWiz\Templates\ \

ItabbyWebForm aspx 修改微软WebForm aspx而成

Templates inf               内容如下

ItabbyWebForm aspx

三 分析说明

CSharpProjectItems                    webProjectItems                          Itabby界面模板                                   ItabbyAddCommonFormWiz vsz                                   内容:                                   VSWIZARD                          扒乎       拦仿   Wizard=VsWizard VsWizardEngine                                    Param= WIZARD_NAME = ItabbyAddCommonFormWiz                                    Param= WIZARD_UI = FALSE                                    Param= PROJECT_TYPE = CSPROJ                                    说明:上述代码修改自微软:\CSharpProjectItems\WCSharpAddWebFormWiz vsz中:                                   VSWIZARD                                    Wizard=VsWizard VsWizardEngine                                    Param= WIZARD_NAME = CSharpAddWebFormWiz                                    Param= WIZARD_UI = FALSE                                    Param= PROJECT_TYPE = CSPROJ                         ui vsdir                        内容:                        ItabbyAddCommonFormWiz vsz|{FAE EC F d BF B C F EFBC}|Itabby通用模板| |# |{FAE EC F d BF B C F EFBC}| | |ItabbyCommonForm aspx                        说明:                        上述代码修改自微软:\CSharpProjectItems\WebProjectItems\UI\ui vsdir中:                       \ \CSharpAddWebFormWiz vsz|{FAE EC F d BF B C F EFBC}|# | |# |{FAE EC F d BF B C F EFBC}| | |WebForm aspx        DesignerTemplates                                           NewWebFormCode cs                         内容:                         $NAMESPACE$        //微软自动处理                         $CLASSNAME$        //微软自动处理        VC#Wizards                  ItabbyAddCommonFormWiz                             Scripts                                                                                        default js                                                内容:

// (c) Microsoft Corporation  function AddDefaultServerScriptToWizard(selProj)  {   wizard AddSymbol( DEFAULT_SERVER_SCRIPT JavaScript )  }

function AddDefaultClientScriptToWizard(selProj)  {      var prjScriptLang = selProj Properties( DefaultClientScript ) Value      // = JScript      // = VBScript      if(prjScriptLang == )      {   wizard AddSymbol( DEFAULT_CLIENT_SCRIPT JavaScript )      }      else      {   wizard AddSymbol( DEFAULT_CLIENT_SCRIPT VBScript )      }  }

function AddDefaultDefaultHTMLPageLayoutToWizard(selProj)  {      var prjPageLayout = selProj Properties( DefaultHTMLPageLayout ) Value      // = FlowLayout      // = GridLayout      if(prjPageLayout == )      {   wizard AddSymbol( DEFAULT_HTML_LAYOUT FlowLayout )      }      else      {   wizard AddSymbol( DEFAULT_HTML_LAYOUT GridLayout )      }  }

function OnFinish(selProj selObj)  {      var oldSuppressUIValue = true   try   {    oldSuppressUIValue = dte SuppressUI    var strProjectName = wizard FindSymbol( PROJECT_NAME )    var strSafeProjectName = CreateSafeName(strProjectName)    wizard AddSymbol( SAFE_PROJECT_NAME strSafeProjectName)    SetTargetFullPath(selObj)    var strProjectPath  = wizard FindSymbol( TARGET_FULLPATH )    var strTemplatePath  = wizard FindSymbol( TEMPLATES_PATH )

//用户自定义代码开始    var strPaths = strProjectPath split( \\ )                  var curResPath =     var bFindModules = false    for(index = strPaths length index>= index )    {     if(strPaths[index]== modules )     {      bFindModules = true      break     }     curResPath += /     }    if(bFindModules==false)     curResPath =     var curJsPath = curResPath + Jscript/mon js     var curCssPath = curResPath + style/mon css     var curImgPath = curResPath + images     var curctlPath = curResPath + Jscript/controlpanel js         wizard AddSymbol( ITABBY_JS_SRC curJsPath)    wizard AddSymbol( ITABBY_CSS_SRC curCssPath)    wizard AddSymbol( ITABBY_IMG_SRC curImgPath)    wizard AddSymbol( ITABBY_CTL_SRC curctlPath)    //用户自定义代码结束

var strTpl =     var strName =     var InfFile = CreateInfFile()        // add the default project props for the aspx file before we    // render it    AddDefaultServerScriptToWizard(selProj)    AddDefaultClientScriptToWizard(selProj)    AddDefaultTargetSchemaToWizard(selProj)    AddDefaultDefaultHTMLPageLayoutToWizard(selProj)    // render our file    AddFilesToCSharpProject(selObj strProjectName strProjectPath InfFile true)    AddReferencesForWebForm(selProj)   }   catch(e)   {    if( e description length >)     SetErrorInfo(e)    return e number   }      finally      {    dte SuppressUI = oldSuppressUIValue    if( InfFile )     InfFile Delete()      }  }

function SetFileProperties(oFileItem strFileName)  {      if(strFileName == WebForm aspx )      {   oFileItem Properties( SubType ) Value = Form       }  }

说明:上述修改自微软:\VC#\VC#Wizards\CSharpAddWebFormWiz\Scripts\ \default js

Templates                                         ItabbyWebForm aspx                       内容:  <%@ Page language= c# Codebehind= $FILENAME$ cs AutoEventWireup= false Inherits= $INHERITS$ %>//微软自动处理  <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN >  <>    <head>      <title>平纹科技</title>      <meta content= Microsoft Visual Studio NET name= GENERATOR >      <meta content= C# name= CODE_LANGUAGE >      <meta content= JavaScript name= vs_defaultClientScript >      <meta content= name= vs_targetSchema >      <meta content= 平纹公司 科技服务生活 信息创造价值 name= keywords >      <META equiv= Content Type content= text/charset=gb >      <meta name=vs_defaultClientScript content= [!output DEFAULT_CLIENT_SCRIPT] >    //微软自动处理      <meta name=vs_targetSchema content= [!output DEFAULT_TARGET_SCHEMA] >        //微软自动处理      <LINK [!output _fcksavedurl= [!output ITABBY_CSS_SRC] type= text/css rel= stylesheet >      //用户自定义变量       <script src= [!output ITABBY_JS_SRC] ></script>                              //用户自定义变量    </head>            

Templates inf                 内容:                 ItabbyWebForm aspx                 说明 上述代码修改自微软:VC#Wizards\CSharpAddWebFormWiz\Templates\ \Templates inf:                 WebForm aspx

四 模板内容

模板的定制主要以修改\VC#\VC#Wizards\ItabbyAddCommonFormWiz\Templates\ ItabbyWebForm aspx和修改VC#\DesignerTemplates\ \NewWebFormCode cs为主 实现不同的界面风格和代码逻辑

\VC#\VC#Wizards\ItabbyAddCommonFormWiz\Scripts\ \default js主要实现与aspx页面的交互 如相对路径的制定 自动替换等 *** 作

lishixinzhi/Article/program/net/201311/12106

1、用FSO 读取模板文件到 变量里面;

2、用replace 函数替换,ok了;

3、注意:目前的模板有好几种,比较简单点的CMS系统里面的是,分开成 头部模板,底部模板这样的,放在数据库里调用的;

一种是写成 .ini 文件的 用[页面文件][/页面文件]这样的标签分割的,如: [页面头]<title>{$web_title}</title>[/页面头][页面脚]</body></html>[/明衡世页面脚]这种样式的,这样的ini文件 不光要用FSO读取,拦禅还要用到正则表达式来分离[页面头][/页面头]这样的标签,提取中间的代码激肢,然后将{$web_title}替换成数据库内容的。关于正则表达式的源代码在 vbscript 的帮助文件里面有,不需要在网上找别人写的代码了(帮助文件里面的代码在目前来看应该最优秀的一个正则代码了)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8173948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存