解决模板页使用的情况下,在内容页中使用 document.getElementById找不到控件的方法
2008-05-08 11:59 Virus-BeautyCode 阅读(1799) 评论(2) 编辑 收藏 举报
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script type="text/javascript">
function setValue()
{
alert("hello");
var label= document.all("<%=la_UserName.ClientID%>")
label.innerText="aa";
}
</script>
<div>
<asp:TextBox ID="txtUser" runat="server" MaxLength="11" onblur="setValue()" ></asp:TextBox>
<asp:Label ID="la_UserName" runat="server" Width="188px" Font-Size="Smaller"></asp:Label></div>
</asp:Content>
还有一个就是内容也访问控件的问题,在后台的c#中也访问不倒了,需要使用findcontrol方法,而且要先找到模板页的contentpalceholder,然后找到contentpalceholder中的内容页的控件,例如:
<script type="text/javascript">
function setValue()
{
alert("hello");
var label= document.all("<%=la_UserName.ClientID%>")
label.innerText="aa";
}
</script>
<div>
<asp:TextBox ID="txtUser" runat="server" MaxLength="11" onblur="setValue()" ></asp:TextBox>
<asp:Label ID="la_UserName" runat="server" Width="188px" Font-Size="Smaller"></asp:Label></div>
</asp:Content>
还有一个就是内容也访问控件的问题,在后台的c#中也访问不倒了,需要使用findcontrol方法,而且要先找到模板页的contentpalceholder,然后找到contentpalceholder中的内容页的控件,例如:
protected string getUserName()
{
ContentPlaceHolder mpContentPlaceHolder;
TextBox mpTextBox =new TextBox();
string username=string.Empty;
using (SqlConnection conn = new SqlConnection("server=.;uid=virus;pwd=;database=DevTest"))
{
conn.Open();
mpContentPlaceHolder =
(ContentPlaceHolder)(Master.FindControl("ContentPlaceHolder1"));
if (mpContentPlaceHolder != null)
{
mpTextBox =
(TextBox)(mpContentPlaceHolder.FindControl("txtUser"));
if (mpTextBox != null)
{
mpTextBox.Text = "1";
}
}
// Gets a reference to a Label control that not in
// a ContentPlaceHolder
//Label mpLabel = (Label)Master.FindControl("masterPageLabel");
//if (mpLabel != null)
//{
// Label1.Text = "Master page label = " + mpLabel.Text;
//}
int id = Convert.ToInt32(mpTextBox.Text);
//TextBox tb = this.Master.FindControl("ContentPlaceHolder1").FindControl("TextBox1") as TextBox;
SqlCommand comm = new SqlCommand("select username from users where userid=" + id);
comm.Connection = conn;
username = comm.ExecuteScalar().ToString();
}
return username;
}
{
ContentPlaceHolder mpContentPlaceHolder;
TextBox mpTextBox =new TextBox();
string username=string.Empty;
using (SqlConnection conn = new SqlConnection("server=.;uid=virus;pwd=;database=DevTest"))
{
conn.Open();
mpContentPlaceHolder =
(ContentPlaceHolder)(Master.FindControl("ContentPlaceHolder1"));
if (mpContentPlaceHolder != null)
{
mpTextBox =
(TextBox)(mpContentPlaceHolder.FindControl("txtUser"));
if (mpTextBox != null)
{
mpTextBox.Text = "1";
}
}
// Gets a reference to a Label control that not in
// a ContentPlaceHolder
//Label mpLabel = (Label)Master.FindControl("masterPageLabel");
//if (mpLabel != null)
//{
// Label1.Text = "Master page label = " + mpLabel.Text;
//}
int id = Convert.ToInt32(mpTextBox.Text);
//TextBox tb = this.Master.FindControl("ContentPlaceHolder1").FindControl("TextBox1") as TextBox;
SqlCommand comm = new SqlCommand("select username from users where userid=" + id);
comm.Connection = conn;
username = comm.ExecuteScalar().ToString();
}
return username;
}