大家好,我刚从ASP转到 .Net来,可能问的问题比较弱智一点
以前用ASP使用了很多include文件,比如header,footer等等
在.Net 2.0里面,我看到有母版页的方式和这个很像现在遇到一个问题,我在母版页里定义的form为
<form id="form1" runat="server">...</form>里面有很多控件,随便举个例子比如
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>但是页面打开以后,就变成了
<form name="aspnetForm" method="post" action="welcome.aspx" id="aspnetForm">...</form>
和
<input name="ctl00$MainContent$txtEmail" type="text" id="ctl00_MainContent_txtEmail" />我的页面里有很多Javascript脚本使用这些控件
包括布局,验证,联动等等
现在名字自动全变了,我该怎么办?
以前用ASP使用了很多include文件,比如header,footer等等
在.Net 2.0里面,我看到有母版页的方式和这个很像现在遇到一个问题,我在母版页里定义的form为
<form id="form1" runat="server">...</form>里面有很多控件,随便举个例子比如
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>但是页面打开以后,就变成了
<form name="aspnetForm" method="post" action="welcome.aspx" id="aspnetForm">...</form>
和
<input name="ctl00$MainContent$txtEmail" type="text" id="ctl00_MainContent_txtEmail" />我的页面里有很多Javascript脚本使用这些控件
包括布局,验证,联动等等
现在名字自动全变了,我该怎么办?
那个text控件是放在内容页welcome.aspx的,form是在母版页MasterPage.master
ctl00$MainContent$txtEmail
MainContent--母版页名
txtEmail-----TextBox名
MainContent--<asp:Content />名
在不同的机器上,或者不同的环境里,会不会发生变化?
如果那样的话,我的Javascript改起来就太郁闷了
难道就是用aspnetForm.ctl00_MainContent_txtEmail的方式来搞定?
.Net为什么无端端搞这么一个东西,用起来岂不是更不方便要是不变的话倒也罢了,就怕微软将来升级个2.1或者3.0什么的,把命名规则改了
那原来发布的程序岂不是都要出错?
在JavaScript中这样使用:
var email = document.getElementById('<%= txtEmail.ClientID %>');
多谢顺路搭一个问题
我看别人在welcome.aspx页面里手动写一个
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>切换到welcome.aspx.cs页面的时候,会自动生成一个定义
protected System.Web.UI.WebControls.TextBox txtEmail我这里为什么不行啊,是不是需要在哪里设置一下?
多谢顺路搭一个问题
我看别人在welcome.aspx页面里手动写一个
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>切换到welcome.aspx.cs页面的时候,会自动生成一个定义
protected System.Web.UI.WebControls.TextBox txtEmail我这里为什么不行啊,是不是需要在哪里设置一下?
----------------
VS 2003 才这样
VS 2005 没有了。
{
Page.Master.FindControl("控件名")
}