直接在页面嵌入js代码没问题
<script>
....
 document.getElementById("<%=lblContenta.ClientID%>").innerHTML=content;
</script>
但是把代码放在yinuo.js中,在母版页调用了 <script type="text/javascript" src="js/yinuo.js"></script>
有执行js文件,但就是找不到document.getElementById("<%=lblContenta.ClientID%>"),对像为空,
直接在页面嵌入代码就没问题

解决方案 »

  1.   

    母版页
    document.getElementById(" <%=lblContenta.ClientID%>")这样查找不到lblContent的控件
      

  2.   

    页面上有lblContenta而母版页上没有
      

  3.   

    调用JS文件有问题
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <script type="text/javascript" src="js/yinuo.js"></script>
    </asp:Content>
    提示document.getElementById(" <%=lblContenta.ClientID%>")对象为空嵌入页面没问题
    <script>
           function getData(c_id)
        {     
            AjaxMethod.GetContent(c_id,getCon);
        }
        function getCon(response)
        {
            if(response.value!=null)
            {
             var ds=response.value;
             if(ds!=null&&typeof(ds)=="object"&&ds.Tables[0].Rows.length>0)
             {
                 var content=ds.Tables[0].Rows[0].c_content;
                 var imgUrl=ds.Tables[0].Rows[0].c_picture;
                  document.getElementById("<%=lblContent.ClientID%>").innerHTML=content;
                  document.getElementById("<%=Image1.ClientID%>").src=imgUrl.replace("~/","");
             }
             else
             {
                alert("没搜索到数据");
             }
            }
            else
           {
                alert("传值出错,重输入");
           }
        }
    </script>
      

  4.   

            HtmlLink csslink = new HtmlLink();
            csslink.Attributes.Add("rel", "stylesheet");
            csslink.Attributes.Add("media", "screen");
            csslink.Attributes.Add("href", "style/style.css");
            csslink.Attributes.Add("type", "text/css");
            Page.Header.Controls.Add(csslink);Page_Load中写
      

  5.   

    Js文件里的标记不会被执行.别的没问题.<% %>这个标记里的东西,只有在asp.net直接处理的文件里才会被执行结果替换,你把这东西写Js文件里,不会被替换的.
      

  6.   

    往head区加入js的方法: 
    LiteralControl lc = new LiteralControl("<script type=\"text/javascript\" src=\"scripts/js1.js\"></script>");
            Page.Header.Controls.Add(lc);注:Page_Load中
    参考http://hi.baidu.com/flydragon1978/blog/item/e9d9b722d6f4f1f1d6cae2ed.html
      

  7.   

    http://hi.baidu.com/flydragon1978/blog/item/e9d9b722d6f4f1f1d6cae2ed.html参考这个还有
      

  8.   

    把ID从aspx页面里取到当参数传到Js文件里的函数中,就没这问题了.
      

  9.   

            LiteralControl lc = new LiteralControl("<script type=\"text/javascript\" src=\"js/yinuo.js\"></script>");
            Page.Header.Controls.Add(lc);
    谢谢啊,还是不行
    提示document.getElementById(" <%=lblContenta.ClientID%>")对象为空 
    找不到控件
      

  10.   

     最简单的办法 先把页面浏览 查看页面源文件 找到控件 查看其ID  在代码中写上这个ID 就行了
      

  11.   

    提示document.getElementById(" <%=lblContenta.ClientID%>")对象为空 
    找不到控件右键点击查看源代码就会生成这样的了ctl00_ContentPlaceHolder1_zhERP_Default_zhERP_TextBox1 
    onclick="document.getElementById('ctl00_ContentPlaceHolder1_zhERP_Default_zhERP_TextBox1').value= 'aaa';">这样写 
    还可以onclick="document.getElementById(" <%=TextBox1.ClientID %>").value= 'aaa';"> 你试试吧,        <asp:TextBox id="TextBox1" runat="server" Text="1"> </asp:TextBox> 
    放在母版页面里面ID就会变了右键点击查看源代码你还是直接写类似这样的ID吧ctl00_ContentPlaceHolder1_zhERP_Default_zhERP_lblContenta
      

  12.   

    [color=#0000FF]
    楼上正解,LZ试下![/color]
      

  13.   

    (" <%=TextBox1.ClientID %>")好像用单引号!!
      

  14.   

    CS 定义一个属性
     public string  getMasterID
            {
                get
                {
                    
                        /*      判断有无母板页      */
                        if (this.Master != null)
                        {
                            /*      有母板页,先找ContentPlaceHolder    */
                            objControl = this.Master.FindControl("你的母板页ID");
                            ContentPlaceHolder cph = (ContentPlaceHolder)objControl;
                           return cph.ClientID;
                        }
                        else
                        {
                           return ;
                        }
                       
                    }
                   
                }
    JS
    document.getElementById('<%=getMasterID+"_"lblContenta.ClientID%>')
      

  15.   

    上面写错了一个地方
    CS 定义一个属性
    public string  getMasterID
            {
                get
                {
                   
                        /*      判断有无母板页      */
                        if (this.Master != null)
                        {
                            /*      有母板页,先找ContentPlaceHolder    */
                            objControl = this.Master.FindControl("你的母板页ID");
                            ContentPlaceHolder cph = (ContentPlaceHolder)objControl;
                          return cph.ClientID;
                        }
                        else
                        {
                          return "";
                        }
                     
                    }
                 
                }
    JS
    document.getElementById(' <%=getMasterID+"_"lblContenta.ClientID%>') 注意属性必须为公有的
      

  16.   

    是单引号,另外前面还要加上一个函数名吧。
    <%# DataBinder.Eval(Container.DataItem,"列名" )%>
    或者
    '<%# Eval("列名", "~/worktemplate/{0}") %>'
      

  17.   

    郁闷死了,用document.getElementById(" <%=lblContenta.ClientID%>").innerHTML不行
    难道我只能查看源代码看控件的ID,document.getElementById('ctl00_ContentPlaceHolder1_lblContent').innerHTML=content;这样是没问题
    没什么解决的办法吗啡~~~
      

  18.   

    public string getMasterID
        {
            get
            {            /*      判断有无母板页      */
                if (this.Master != null)
                {
                    /*      有母板页,先找ContentPlaceHolder    */
                    ContentPlaceHolder cph =(ContentPlaceHolder) this.Master.FindControl("ContentPlaceHolder1");
                    return cph.ClientID;               
                }
                else
                {
                    return "";
                }        }
        
    取ID没问题,在JS中好像取不到属性<%=getMasterID%>的值,JS中怎么写
      

  19.   

    大家帮忙看看,我试了一下是因为在js文件中<%=getMasterID%>用这绑定方法取值都失效了,用嵌入代码就没问题
      

  20.   


    当然啦, js 又不会执行 asp.net 的 <%=lblContent.ClientID%> 代码。
      

  21.   


    <script>
           function getData(c_id)
        {     
            AjaxMethod.GetContent(c_id,getCon);
        }
        function getCon(response, contentID, imageID)
        {
            if(response.value!=null)
            {
             var ds=response.value;
             if(ds!=null&&typeof(ds)=="object"&&ds.Tables[0].Rows.length>0)
             {
                 var content=ds.Tables[0].Rows[0].c_content;
                 var imgUrl=ds.Tables[0].Rows[0].c_picture;
                  document.getElementById(contentID).innerHTML=content;
                  document.getElementById(imageID).src=imgUrl.replace("~/","");
             }
             else
             {
                alert("没搜索到数据");
             }
            }
            else
           {
                alert("传值出错,重输入");
           }
        }
    </script>
    调用的时候加参数就够了getCon(response, contentID, imageID)
      

  22.   

    你要获取MasterPage里面的Page,然后转换为强类型,在获取里面的lblContenta。
      

  23.   

    document.getElementById('<%=txt_Name.ClientID %>').value 
    就可以获取里面的值了
      

  24.   

    全部都说错了。实际这个跟页面生命周期有关。
    LZ 可以使试试 setTimeout(" 执行的函数", 3000);
    看看可以获取到对象不?目前没想到解决方案