asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

如何制作Asp.Net界面模板


发布日期:2022年12月25日
 
如何制作Asp.Net界面模板

基础知识

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

其下的NewWebFormCodecs文件是默认的新AspNet页面的后台代码文件;

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

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

其下的\Templates\\WebFormaspx文件定义新AspNet页面的*aspx文件;

其下的\Templates\\Templatesinf文件指向了WebFormaspx文件;

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

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

制作过程

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

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

ItabbyAddCommonFormWizvsz内容如下

VSWIZARD

Wizard=VsWizardVsWizardEngine

Param=WIZARD_NAME = ItabbyAddCommonFormWiz

Param=WIZARD_UI = FALSE

Param=PROJECT_TYPE = CSPROJ

uivsdir内容如下

ItabbyAddCommonFormWizvsz|{FAEECFdBFBCFEFBC}|Itabby通用模板||#|{FAEECFdBFBCFEFBC}|||ItabbyCommonFormaspx

VC#\DesignerTemplates\\

NewWebFormCodecs修改微软NewWebFormCodecs而成

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

defaultjs修改微软defaultjs而成

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

ItabbyWebFormaspx 修改微软WebFormaspx而成

Templatesinf内容如下

ItabbyWebFormaspx

分析说明

CSharpProjectItems

webProjectItems

Itabby界面模板

ItabbyAddCommonFormWizvsz

内容:

VSWIZARD

Wizard=VsWizardVsWizardEngine

Param=WIZARD_NAME = ItabbyAddCommonFormWiz

Param=WIZARD_UI = FALSE

Param=PROJECT_TYPE = CSPROJ

说明:上述代码修改自微软:\CSharpProjectItems\WCSharpAddWebFormWizvsz中:

VSWIZARD

Wizard=VsWizardVsWizardEngine

Param=WIZARD_NAME = CSharpAddWebFormWiz

Param=WIZARD_UI = FALSE

Param=PROJECT_TYPE = CSPROJ

uivsdir

内容:

ItabbyAddCommonFormWizvsz|{FAEECFdBFBCFEFBC}|Itabby通用模板||#|{FAEECFdBFBCFEFBC}|||ItabbyCommonFormaspx

说明:

上述代码修改自微软:\CSharpProjectItems\WebProjectItems\UI\uivsdir中:

\\CSharpAddWebFormWizvsz|{FAEECFdBFBCFEFBC}|#||#|{FAEECFdBFBCFEFBC}|||WebFormaspx

DesignerTemplates

NewWebFormCodecs

内容:

$NAMESPACE$ //微软自动处理

$CLASSNAME$ //微软自动处理

VC#Wizards

ItabbyAddCommonFormWiz

Scripts

defaultjs

内容:

// (c) Microsoft Corporation

function AddDefaultServerScriptToWizard(selProj)

{

wizardAddSymbol(DEFAULT_SERVER_SCRIPT JavaScript);

}

function AddDefaultClientScriptToWizard(selProj)

{

var prjScriptLang = selProjProperties(DefaultClientScript)Value;

// = JScript

// = VBScript

if(prjScriptLang == )

{

wizardAddSymbol(DEFAULT_CLIENT_SCRIPT JavaScript);

}

else

{

wizardAddSymbol(DEFAULT_CLIENT_SCRIPT VBScript);

}

}

function AddDefaultDefaultHTMLPageLayoutToWizard(selProj)

{

var prjPageLayout = selProjProperties(DefaultHTMLPageLayout)Value;

// = FlowLayout

// = GridLayout

if(prjPageLayout == )

{

wizardAddSymbol(DEFAULT_HTML_LAYOUT FlowLayout);

}

else

{

wizardAddSymbol(DEFAULT_HTML_LAYOUT GridLayout);

}

}

function OnFinish(selProj selObj)

{

var oldSuppressUIValue = true;

try

{

oldSuppressUIValue = dteSuppressUI;

var strProjectName = wizardFindSymbol(PROJECT_NAME);

var strSafeProjectName = CreateSafeName(strProjectName);

wizardAddSymbol(SAFE_PROJECT_NAME strSafeProjectName);

SetTargetFullPath(selObj);

var strProjectPath= wizardFindSymbol(TARGET_FULLPATH);

var strTemplatePath= wizardFindSymbol(TEMPLATES_PATH);

//用户自定义代码开始

var strPaths = strProjectPathsplit(\\);

var curResPath = ;

var bFindModules = false;

for(index = strPathslength;index>=;index)

{

if(strPaths[index]==modules)

{

bFindModules = true;

break;

}

curResPath += /;

}

if(bFindModules==false)

curResPath = ;

var curJsPath = curResPath + Jscript/commonjs;

var curCssPath = curResPath + style/commoncss;

var curImgPath = curResPath + images

var curctlPath = curResPath + Jscript/controlpaneljs

wizardAddSymbol(ITABBY_JS_SRC curJsPath);

wizardAddSymbol(ITABBY_CSS_SRC curCssPath);

wizardAddSymbol(ITABBY_IMG_SRC curImgPath);

wizardAddSymbol(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( edescriptionlength > )

SetErrorInfo(e);

return enumber;

}

finally

{

dteSuppressUI = oldSuppressUIValue;

if( InfFile )

InfFileDelete();

}

}

function SetFileProperties(oFileItem strFileName)

{

if(strFileName == WebFormaspx)

{

oFileItemProperties(SubType)Value = Form;

}

}

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

Templates

ItabbyWebFormaspx

内容:

<%@ Page language=c# Codebehind=$FILENAME$cs AutoEventWireup=false Inherits=$INHERITS$ %>//微软自动处理

<!DOCTYPE HTML PUBLIC //WC//DTD HTML Transitional//EN >

<html>

<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 httpequiv=ContentType content=text/html; 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>

Templatesinf

内容:

ItabbyWebFormaspx

说明上述代码修改自微软:VC#Wizards\CSharpAddWebFormWiz\Templates\\Templatesinf:

WebFormaspx

模板内容

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

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

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

               

上一篇:asp.net中DataBinder.Eval的用法总结

下一篇:ASP.NET长文章分页显示函数