代码改变世界

解决模板页使用的情况下,在内容页中使用 document.getElementById找不到控件的方法

2008-05-08 11:59  Virus-BeautyCode  阅读(1789)  评论(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中的内容页的控件,例如:
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;
    }