仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 733|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET编程:Form code generator V1.1 by Steve Sc...

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:50:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
归根到底,Java跨平台可以,但是要重新编写代码,否则还分什么J2EE/J2SE/J2ME呢!Thisarticlerevolvesaroundbeingplainlazy.WhenitcomestocreatingFormcodebasedonsomedatabasetable,Ihateit!Thiscodesamplegoesalongwayinspeedingthisprocessupforme.Therestillissomemanualpartstofinishuptheformcodebutthistakescareofrememberingwhatcolumnsareinthedatabasetable.Infuturereleases,wellprovidemorefunctionalitytofurtherautomatethisbutthisisabigfirststepinmyopinion!ThefollowingfourstepslistedbelowcanbefollowedandthiswillgeneratetheASP.NETcode.AbigthankstoDaveW.Webmasterofforsavingmeonmanythings!!

Definewhatdatabaseyouwanttoconnecttointheconfig.web.Thisisstoredintheconnectionstring
<configuration>
<appsettings>
<addkey="dsn"value="server=localhost;uid=sa;pwd=;database=aspfree"/>
</appsettings>
</configuration>
Loadtheaspxpageinyourbrowser,selectthetabletocreatetheFormcodefrom
Selectthecheckboxsofwhichfieldstobeontheform
Copyandpasteintoyourcode..
HereisascreenshotoftheFileafterfollowingtheabovesteps.



Hereisthecode:

<%@PageLanguage="VB"EnableSessionState="False"EnableViewState="True"Trace="False"Debug="False"Strict="True"%>
<%@ImportNamespace="System.Text"%>
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.SqlClient"%>
<scriptlanguage="VB"runat="server">
DimsqlTextasString
DimdsasNewDataSet
DimdbCommASNewSQLDataAdapter
DimconnASSQLConnection
DimsqlServerasString

SubPage_Load(senderAsObject,eAsEventArgs)

SQLserver=GetSqlConn()
conn=NewSQLConnection(SQLserver)


IfNotIsPostBackthen
sqlText="selectid,namefromsysobjectswherextype=Uorderbyname"
dbComm=NewSQLDataAdapter(sqlText,conn)
dbComm.Fill(ds,"AllTables")
tblList.DataSource=ds.Tables("AllTables").DefaultView
tblList.DataTextField="name"
tblList.DataValueField="name"
tblList.DataBind()
Endif


EndSub

FunctionCreateValidator(myNameasstring)asString
DimmySBasStringBuilder=NewStringBuilder()

REM--use:<sometext>:asplaceholders
mySB.Append("<asp:RequiredFieldValidatorrunat=""server""id="":Name:""ControlToValidate="":control:""ErrorMessage="":errMsg:""display=""Static"">ThisRequiredField!</asp:RequiredFieldValidator>")

mySb.Replace(":Name:","vld"&myName)addthevalidatorname
mySb.Replace(":control:","at"&myName)addthecontrolname
mySb.Replace(":errMsg:",myName&"isrequired")

ReturnmySb.ToString()

EndFunction


FunctionGetSqlConn()asString
DimDSNasString=ConfigurationSettings.AppSettings("DSN")
ReturnDSN
EndFunction


SubGetTable_Click(senderAsObject,eAsEventArgs)
DimsqlTextasString
sqlText="SELECTsyscolumns.name,syscolumns.isnullableFROMsysobjectsINNERJOINsyscolumnsONsysobjects.id=syscolumns.idwheresysobjects.name="&tblList.SelectedItem.Text&"ORDERBYsyscolumns.colid"

REM--ConnecttoSQL
dbComm=NewSQLDataAdapter(sqlText,conn)

REM--FillDataSet
dbComm.Fill(ds,"TestData")
MyDataGrid.DataSource=ds.Tables("TestData").DefaultView
MyDataGrid.DataBind()


REM--Showtheresults
myPanel.Visible=True

EndSub



SubButton1_Click(senderAsObject,eAsEventArgs)

DimiAsInteger
Dim_itemAsDataGridItem
DimdrAsDataRow
DimsbasStringBuilder=NewStringBuilder()
DimstrOutputasString

REM--AutoGenerateTheForm
sb.Append("<formrunat=""server""id=""form2""name=""form2"">"&Chr(13)&Chr(10))
sb.Append("<tableborder=1>"&chr(13))


Fori=0ToMyDataGrid.Items.Count-1
REM--Getthecheckbox
_item=MyDataGrid.Items(i)
DimaddCheckBoxAsCheckBox=Ctype(_item.FindControl("chkAdd"),CheckBox)
DimvalidCheckBoxasCheckBox=Ctype(_item.FindControl("chkValid"),CheckBox)

IfaddCheckBox.Checkedthen
sb.Append("<tr>"&chr(13))
sb.Append("<td>"&_item.Cells(1).Text&"</td>"&chr(13))
sb.Append("<td>")
sb.Append("<asp:textboxid=""at"&_item.Cells(1).Text&"""runat=""server""/>")

createavalidatorcontrol
IfvalidCheckBox.Checkedthen
sb.Append(""&chr(13)&CreateValidator(_item.Cells(1).Text))
Endif

sb.Append("</td>"&chr(13))
sb.Append("</tr>"&chr(13))closeouttherow
Endif

Next
sb.Append("<tr>"&chr(13))closeouttherow
sb.Append("<tdcolspan=""2""><asp:buttonid=""button1""Text=""ValidateForm""runat=""Server""/></td>"&chr(13))
sb.Append("</tr>"&chr(13))closeouttherow
sb.Append("</table>"&chr(13))
sb.Append(chr(13)&"</form>")
strOutput=sb.ToString()
strOutput=System.Web.HttpUtility.HTMLEncode(strOutput)
taResults.Value=strOutput
pnlTextarea.Visible=True
EndSub

</script>

<html>
<head>
<title></title>
</head>
<bodybgcolor="#FFFFFF">
<formrunat="server"id=form1>
Selectatablenametocreatea.NETformfor:
<asp:dropdownlistid="tblList"runat="server"/>
<asp:Buttonid=GetTableText="GetTable"runat="server"/>

<asp:panelid=myPanelrunat="server"visible="false">
<br>
SelecttheColumnsusedforgeneratingtheform.

<asp:datagridid=MyDataGridrunat="server"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AutoGenerateColumns="False"
>
<Columns>
<asp:TemplateColumnHeaderText="Add?">
<ItemTemplate>
<center>
<asp:CheckBoxid=chkAddrunat="server"/>
</center>
</Itemtemplate>
</asp:TemplateColumn>

<asp:BoundColumnHeaderText="Name"DataField="name"/>

<asp:TemplateColumnHeaderText="CreateValidator?">
<ItemTemplate>
<center>
<asp:CheckBoxid=chkValidrunat="server"/>
</center>
</Itemtemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>

<asp:Buttonid=Button1Text="CreateForm"runat="server"/>
</asp:panel>

<asp:panelid="pnlTextarea"visible="false"runat="server">
<p>CopythiscodeintoanewASP.NETpage</p>
<textareaid=taResultscols=90rows=40runat="server"/>
</asp:panel>

</form>
</body>
</html
[img=1border=0style=,1src=]http://www.ckuyun.com/[/img]

据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-20 05:34:38 | 只看该作者
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-2-5 18:02:58 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
小妖女 该用户已被删除
地板
发表于 2015-2-13 01:48:44 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
再现理想 该用户已被删除
5#
发表于 2015-3-3 12:22:53 | 只看该作者
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-11 11:00:41 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-18 07:12:22 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
谁可相欹 该用户已被删除
8#
发表于 2015-3-25 12:56:52 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-2 16:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表