|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。页面1、一样平常而言,假如想给aspx页面上的webformcontrol加上一些javascript的特征,能够用Attributes.Add来完成。
比方,对TextBoxtxt,能够:
txt.Attributes.Add("onclick","fcn0();");
那末,在web页面上click它的时分,就会挪用fcn0这个javascript函数。
1.1、破例的情形是,关于IDE没法识别的属性的剖析。
好比对一个RadioButtonrbt,IDE不克不及识别onclick这个属性,那末,相似下面的语句,
rbt.Attributes.Add("onclick","fcn1(this);");
在.netframework1.1中,将剖析成
<inputtype=radioid=rbtonclick="fcn1(this);">...
而在在.netframework1.0中,将剖析成
<spanonclick="fcn1(this);"><inputtype=radioid=rbt>...</span>
注重到,fcn1中,参数this对应的工具就分歧了。这是一个渺小的不同。
2、而关于HTMLcontrol,必要多做一点事变。
在计划aspx页面的时分,从工具栏拖一个webformcontrol,好比说,TextBox到页面,会产生两件事:
1、aspx页面多一句
<asp:TextBoxid="TextBox1"style="..."runat="server"Width="102px"Height="25px"></asp:TextBox>
2、codebehind多一句
protectedSystem.Web.UI.WebControls.TextBoxTextBox1;
假如是htmlcontrol,那末,第一句中,runat="server"不会呈现,而第二局不会被主动增加。
因而,假如要会见htmlcontrol,必要
1、aspx页面的语句中增加runat="server"属性,成为
<INPUTstyle="..."type="text"size="9"id="htxt"runat="server">
2、codebehind中显现的声明
protectedSystem.Web.UI.HtmlControls.HtmlInputTexthtxt;
注重到第一句的id和第二句的变量名是不异的。
2.1、注重到,后面System.Web.UI.WebControls.TextBox对应的htmlcontrol是System.Web.UI.HtmlControls.HtmlInputText,对应的html的tag是<INPUTtype="text">,
响应的,html的tag<body>对应的htmlcontrol是
publicSystem.Web.UI.HtmlControls.HtmlGenericControlmyBody;
2.2、有一点破例的是html的<form>tag对应的onsubmit的事务。看如许一个aspx页面
<%@Pagelanguage="c#"Codebehind="WebForm2.aspx.cs"AutoEventWireup="false"Inherits="TestCs.WebForm2"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD>
<title>WebForm2</title>
<metaname="GENERATOR"Content="MicrosoftVisualStudio7.0">
<metaname="CODE_LANGUAGE"Content="C#">
<metaname="vs_defaultClientScript"content="JavaScript">
<metaname="vs_targetSchema"content="http://schemas.microsoft.com/intellisense/ie5">
<scriptlanguage="javascript">
functionfcn1()
{
prompt("hi","fcn1");
}
</script>
</HEAD>
<bodyMS_POSITIONING="GridLayout">
<formid="WebForm2"method="post"runat="server"onsubmit="fcn1();">
<asp:Buttonid="Button1"style="Z-INDEX:103;LEFT:423px;POSITION:absolute;TOP:83px"runat="server"Width="86px"Height="29px"Text="Button"></asp:Button>
<asp:DropDownListid="DropDownList1"style="Z-INDEX:104;LEFT:284px;POSITION:absolute;TOP:163px"runat="server"Width="188px"Height="17px"AutoPostBack="True">
<asp:ListItemValue="a">a</asp:ListItem>
<asp:ListItemValue="b">b</asp:ListItem>
<asp:ListItemValue="c">c</asp:ListItem>
</asp:DropDownList>
</form>
</body>
</HTML>
内容很复杂,界说了一个javascript函数fcn1,放了一个ButtonButton1和一个autopostback的DropdownlistDropDownList1,运转它,能够看到:点击Button1,会先实行fcn1然后postback,而选择DropDownList1的分歧选项,将只会postback,而不会触发fcn1。
微软autopostback=true的webcontrol完成postback,道理是如许的:
1、假如此aspx页面有autopostback=true的webcontrol,那末会写上面一段javascript语句界说一个叫__doPostBack的javascript函数。
<scriptlanguage="javascript">
<!--
function__doPostBack(eventTarget,eventArgument){
vartheform;
if(window.navigator.appName.toLowerCase().indexOf("netscape")>-1){
theform=document.forms["WebForm2"];
}
else{
theform=document.WebForm2;
}
theform.__EVENTTARGET.value=eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value=eventArgument;
theform.submit();
}
//-->
</script>
2、比方是下面的dropdownlist,将会render成:
<selectname="DropDownList1"onchange="__doPostBack</p>当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题 |
|