a.aspx 代码:<asp:Literal ID="ltr1" runat="server" ></asp:Literal>a.aspx.cs 里Page_Load代码: ltr1.Text="<table><tr><td>"+"你是谁"+"</td></tr></table>";现在我想用JS把ltr1.Text的内容改掉(设想如下代码),哪位大侠帮帮忙。
document.getElementById("ltr1").value ="<table><tr><td>"+"你是谁"+"</td></tr><tr><td>"+"你是谁"+"</td></tr></table>";.value无效,用.Text也无效。alert(document.getElementById("ltr1").value);和alert(document.getElementById("ltr1").Text);都不弹出对话框。求救啦!!!

解决方案 »

  1.   

    LZ 看来对客户端和服务端不够了解,ltr1是服务器端控件,不能在JS里直接调用,但可以在aspx.cs 里写方法调用比如你的JS方法名称是check(),
    function check()
    {
       alert(document.getElementById("ltr1").value);
    }
    在a.aspx  
    <asp:Literal ID="ltr1" runat="server" > </asp:Literal> <asp:Button ID="btnOK" runat="server" Text="转换" />在a.aspx.cs的Page_Load 里写入
    btnDel.Attributes.Add("onclick", "return check();");
    就OK了
      

  2.   

    asp.net夜话之八:数据绑定控件
    在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。
      

  3.   

    一般控件有三个ID属性:
    ID:这是在服务器端代码中操作服务器控件所用的ID。
    ClientID:这个表现为服务器控件解释成HTML控件之后的ID。
    UniqueID:这个表现为服务器控件解释成HTML控件之后的name。应该用ClientID来操作。
    document.getElementById(<%=ltr1.ClientID=%>).value =" <table> <tr> <td>"+"你是谁"+" </td> </tr> <tr> <td>"+"你是谁"+" </td> </tr> </table>";
    注意是这样的:document.getElementById(<%=ltr1.ClientID=%>).value
      

  4.   

    Literal无法用客户端代码确定控件的位置。不允许对所显示的文本应用样式。
    http://blog.csdn.net/Lo_565/archive/2009/09/18/4566726.aspx
      

  5.   

    Literal生成到页面之后是没有具体标签的,所以你在js是肯定获取不到Literal的,换成Label吧
      

  6.   

    用纯JS修改不了的,得通过服务器端代码来改变内容Literal Web 服务器控件介绍
    可以使用 Literal Web 服务器控件将静态文本呈现在 Web 页上并使用服务器代码操纵该文本。与 Label Web 服务器控件不同,Literal 控件不将任何HTML 元素添加到文本上。
      

  7.   


    大哥,我试了,没用啊。连拿document.getElementById( <%=ltr1.ClientID=%>).value都拿不到
      

  8.   

    加引号:
    document.getElementById( ‘<%=ltr1.ClientID=%>’).value
      

  9.   

    去掉“=”号:
    document.getElementById( ‘ <%=ltr1.ClientID %>’).value
      

  10.   

    要用label ,它在客户端生成之后,他没有对应的html,也没有ID
      

  11.   

    浏览的时候右键查看HTML代码。你就知道原因了。Literal  是生成不了任何HTML代码的。所以那个ID是没有的。
    换个别的 
      

  12.   

    例子
     <script type="text/javascript">
         function test() {
             document.getElementById("Literal1").innerHTML = " <table> <tr> <td>" + "你是谁" + " </td> </tr> <tr> <td>" + "你是谁" + " </td> </tr> </table>";
         }
    <span ID="Literal1" runat="server"></span>
         <input type="button"  value="点我变换" onclick="test()"/>
     </script> 
    protected void Page_Load(object sender, EventArgs e)
        {
            Literal1.InnerHtml = " <table> <tr> <td>" + "你是谁" + " </td> </tr> </table>";
        }
      

  13.   

    litreal?
    该控件在客户端页面表现为他的TEXT属性的内容,即没有什么标签,你通过GetElementById肯定获取不到DOM对象的。
    可以在litreal外面放SPAN或者其他标签,当然你可以选用LABEL控件,该控件的表现其实为SPAN
      

  14.   


    你还挺执着,告诉你Literal生成到页面之后是没有任何html标签的,你用js是找不到的,让你换别的控件,非不相信
      

  15.   

    Label生成完以后不就是span吗……
      

  16.   

    确实,疏忽了,Literal到客户端是没有任何HTML标记的。