masterpage页中加载js函数show_cele_date(eP,d_start,d_end,t_object)在子页的Page_load()
对一个textbox加载一个属性  并调用js中的方法,传递textbox这个对象到js函数中this.TextBox1.Attributes.Add("OnFocus", "show_cele_date(ctl00$ContentPlaceHolder1$TextBox1,'','', ctl00$ContentPlaceHolder1$TextBox1)");在模版页中TextBox1对象转化成
ctl00$ContentPlaceHolder1$TextBox1现在怎么能在子页的pageload中取得这个对象呢。
this.TextBox1.Attributes.Add("OnFocus", "show_cele_date(TextBox1,'','',TextBox1)");

解决方案 »

  1.   

    this.TextBox1.Attributes.Add("OnFocus", "show_cele_date(TextBox1.ClientID,'','',TextBox1.ClientID)"); 
      

  2.   

    这样的结果是在画面,根本就不相应事件。我不知道什么原因。我把代码贴出来在子页的Page_load() protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack != false)
            {
                return;
            }
            //this.TextBox1.Attributes.Add("onfocus", "show_cele_date(document.getElementById('<%=TextBox1.ClientID%>'),'','',document.getElementById('<%=TextBox1.ClientID%>'))");        //this.TextBox1.Attributes.Add("onfocus", "show_cele_date(TextBox1.ClientID,'','',TextBox1.ClientID)");        //document.getElementById( <%=string.Format("'{0}'",TextBox1.ClientID)%>);        this.TextBox1.Attributes.Add("OnFocus", "show_cele_date(TextBox1.ClientID,'','', TextBox1.ClientID)");        
           // this.TextBox1.Attributes.Add("OnFocus", "show_cele_date(ctl00$ContentPlaceHolder1$TextBox1,'','', ctl00$ContentPlaceHolder1$TextBox1)");        GetTestType();
        }画面层<asp:TextBox ID="TextBox1" runat="server" Width="170px"></asp:TextBox>&nbsp;</td>
    master页加载 js函数 是直接 放到cs文件中的
    首先声明这个是没有错误的 我已经调试了。
    function show_cele_date(eP,d_start,d_end,t_object)
    {
    window.cele_date.style.display="";
    window.cele_date.style.zIndex=99
    var s,cur_d
    var eT = eP.offsetTop;  
    var eH = eP.offsetHeight+eT;  
    var dH = window.cele_date.style.pixelHeight;  
    var sT = document.body.scrollTop; 
    var sL = document.body.scrollLeft; 
    event.cancelBubble=true;
    window.cele_date.style.posLeft = event.clientX-event.offsetX+sL-5;  
    window.cele_date.style.posTop = event.clientY-event.offsetY+eH+sT-5;
    if (window.cele_date.style.posLeft+window.cele_date.clientWidth>document.body.clientWidth) window.cele_date.style.posLeft+=eP.offsetWidth-window.cele_date.clientWidth;
    if (d_start!=""){
        if (d_start=="today"){
            date_start=new Date(today.getYear(),today.getMonth(),today.getDate());
        }else{
            s=d_start.split(separator);
            date_start=new Date(s[0],s[1]-1,s[2]);
        }
    }else{
        date_start=new Date(1900,1,1);
    }if (d_end!=""){
        s=d_end.split(separator);
        date_end=new Date(s[0],s[1]-1,s[2]);
    }else{
        date_end=new Date(3000,1,1);
    }
      

  3.   

    document.getElementById(' <%=TextBox1.ClientID%>'),'
    为什么还要加<%%>
    没看到我没加吗
      

  4.   

    this.TextBox1.Attributes.Add("OnFocus", "show_cele_date(document.getElementById('"+TextBox1.ClientID.ToString()+"','','', document.getElementById('"+TextBox1.ClientID.ToString()+"')");