一、基础知识
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主要实现了与集成开发环境的向导交互.
全文完毕,请访问http://itabby.com/支持本土事业,谢谢。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!


