【转载】在使用了母版页的内容页后,如何在javascript中调用服务器控件值
<script language="javascript" type="text/javascript">
// <!CDATA[
function Submit1_onclick() {
var Clientid="<%=TextBox1.ClientID%>"//服务器控件在客户端生成的id
txtbox=document.getElementById(v).value;
alert(Clientid);
alert(txtbox);//文本框的值
}
// ]]>
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />
</asp:Content>
另一篇中的讲解:
在javascript调用控件的时候,无论这个脚本在母版页,还是在子页面:
1。javascript调用客户端控件:都可以直接调用母版页或子页面的所有客户端控件(<input>)的属性。
即:母版页和子页面里的javascript最终都被加载到了子页面。而客户端控件无论在哪个页面,其id,name等的属性值都不会改变。
2。javascript调用本页面的服务器端控件:都应该使用var d=document.getElementById('<%=TextBox1.ClientID %>');类似的语句。
javascript想调用服务器端控件,注意这个服务器控件的属性变化:
在使用了母版的子页面里,母版里的服务器控件中,runar="server"的Form的属性会变为:<form name="aspnetForm" method="post" id="aspnetForm">;
第一个asp:Buttont的type变为submit,其他的不变,而所有asp:Buttont和asp:TextBox,
其ID的属性名前会加上ctl00_,比如:id="ctl00_Button1",name的属性名前加上ctl00$,name="ctl00$Button1";
在子页面里,本页面的服务器控件都被放在了
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">。。。。。</asp:Content>中,
其ID的属性名前都要加上ctl00_ContentPlaceHolder1_,比如ctl00_ContentPlaceHolder1_TextBox1;
其name的属性名前都加上ctl00$,比如:ctl00$ContentPlaceHolder1$Button1