科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件如何制作Asp.Net界面模板

如何制作Asp.Net界面模板

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

、基础知识 C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\DesignerTemplates\2052 其下的NewWebFormCode.cs文件是默认的新Asp.Net页面的后台代码文件;

作者:中国IT实验室 来源:中国IT实验室 2007年8月31日

关键字: 模版 界面 ASP.NET

  • 评论
  • 分享微博
  • 分享邮件

一、基础知识

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

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

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

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

       其下的\Templates\2052\WebForm1.aspx文件定义新Asp.Net页面的*.aspx文件;

       其下的\Templates\2052\Templates.inf文件指向了WebForm1.aspx文件;

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

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

二、制作过程 

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

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

                         ItabbyAddCommonFormWiz.vsz:内容如下:

                                                  VSWIZARD 7.0
                                                  Wizard=VsWizard.VsWizardEngine.7.1
                                                  Param="WIZARD_NAME = ItabbyAddCommonFormWiz"
                                                  Param="WIZARD_UI = FALSE"
                                                  Param="PROJECT_TYPE = CSPROJ"                                

                         ui.vsdir:内容如下:

                                                 ItabbyAddCommonFormWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|Itabby通用模板|10|#2263|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4534|0|ItabbyCommonForm.aspx

       VC#\DesignerTemplates\2052\

                        NewWebFormCode.cs:修改微软NewWebFormCode.cs而成;

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

                       default.js:修改微软default.js而成

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

                       ItabbyWebForm.aspx :修改微软WebForm1.aspx而成

                       Templates.inf              :内容如下:

                                                ItabbyWebForm.aspx

三、分析说明

         CSharpProjectItems
                    webProjectItems
                          Itabby界面模板
                                   ItabbyAddCommonFormWiz.vsz
                                   内容:
                                   VSWIZARD 7.0
                                   Wizard=VsWizard.VsWizardEngine.7.1
                                   Param="WIZARD_NAME = ItabbyAddCommonFormWiz"
                                   Param="WIZARD_UI = FALSE"
                                   Param="PROJECT_TYPE = CSPROJ"
                                   说明:上述代码修改自微软:\CSharpProjectItems\WCSharpAddWebFormWiz.vsz中:
                                   VSWIZARD 7.0
                                   Wizard=VsWizard.VsWizardEngine.7.1
                                   Param="WIZARD_NAME = CSharpAddWebFormWiz"
                                   Param="WIZARD_UI = FALSE"
                                   Param="PROJECT_TYPE = CSPROJ"
                        ui.vsdir
                        内容:
                        ItabbyAddCommonFormWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|Itabby通用模板|10|#2263|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4534|0|ItabbyCommonForm.aspx
                        说明:
                        上述代码修改自微软:\CSharpProjectItems\WebProjectItems\UI\ui.vsdir中:
                       ..\..\CSharpAddWebFormWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2236|10|#2263|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4534|0|WebForm.aspx
        DesignerTemplates
                 2052
                         NewWebFormCode.cs
                         内容:
                         $NAMESPACE$        //微软自动处理
                         $CLASSNAME$        //微软自动处理
        VC#Wizards
                  ItabbyAddCommonFormWiz
                             Scripts
                                        2052
                                                default.js
                                                内容:
// (c) Microsoft Corporation
  function AddDefaultServerScriptToWizard(selProj)
  {
   wizard.AddSymbol("DEFAULT_SERVER_SCRIPT", "JavaScript");
  }

  function AddDefaultClientScriptToWizard(selProj)
  {
      var prjScriptLang = selProj.Properties("DefaultClientScript").Value;
      // 0 = JScript
      // 1 = VBScript
      if(prjScriptLang == 0)
      {
   wizard.AddSymbol("DEFAULT_CLIENT_SCRIPT", "JavaScript");
      }
      else
      {
   wizard.AddSymbol("DEFAULT_CLIENT_SCRIPT", "VBScript");
      }
  }

  function AddDefaultDefaultHTMLPageLayoutToWizard(selProj)
  {
      var prjPageLayout = selProj.Properties("DefaultHTMLPageLayout").Value;
      // 0 = FlowLayout
      // 1 = GridLayout
      if(prjPageLayout == 0)
      {
   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-1;index>=0;index--)
    {
     if(strPaths[index]=='modules')
     {
      bFindModules = true;
      break;
     }
     curResPath += "../";
    }
    if(bFindModules==false)
     curResPath = "";
    var curJsPath = curResPath + "Jscript/common.js";
    var curCssPath = curResPath + "style/common.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 > 0 )
     SetErrorInfo(e);
    return e.number;
   }
      finally
      {
    dte.SuppressUI = oldSuppressUIValue;
    if( InfFile )
     InfFile.Delete();
      }
  }

  function SetFileProperties(oFileItem, strFileName)
  {
      if(strFileName == "WebForm1.aspx")
      {
   oFileItem.Properties("SubType").Value = "Form";
      }
  }
说明:上述修改自微软:\VC#\VC#Wizards\CSharpAddWebFormWiz\Scripts\2052\default.js

       Templates
                 2052
                       ItabbyWebForm.aspx
                       内容:
  <%@ Page language="c#" Codebehind="$FILENAME$.cs" AutoEventWireup="false" Inherits="$INHERITS$" %>//微软自动处理
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  <html>
    <head>
      <title>平纹科技</title>
      <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
      <meta content="C#" name="CODE_LANGUAGE">
      <meta content="JavaScript" name="vs_defaultClientScript">
      <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
      <meta content="平纹公司,科技服务生活,信息创造价值" name="keywords">
      <META http-equiv="Content-Type" content="text/html; charset=gb2312">
      <meta name=vs_defaultClientScript content="[!output DEFAULT_CLIENT_SCRIPT]">    //微软自动处理
      <meta name=vs_targetSchema content="[!output DEFAULT_TARGET_SCHEMA]">        //微软自动处理
      <LINK href="[!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\2052\Templates.inf:
                 WebForm1.aspx

四、模板内容

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

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

      \VC#\CSharpProjectItems\WebProjectItems\Itabby界面模板\ItabbyAddCommonFormWiz.vsz和VC#\CSharpProjectItems\WebProjectItems\Itabby界面模板\ui.vsdir主要实现了与集成开发环境的向导交互.

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章