2014-02-28 90 views
0

有没有什么方法来呈现浏览器中显示的文本,而不是基础html。我试图模拟服务器端代码中的JavaScript的.innerText()功能。将web控件呈现为纯文本形式的字符串

例如,对于下面的代码是有可能呈现的“Hello World”,而不是

<div id="Panel1"> 
    <div>Hello World</div> 
</div> 

下面是代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RenderControl.aspx.cs" 

Inherits="AccessibleMenu.RenderControl" Trace="true" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:Panel ID="Panel1" runat="server"> 
      <div>Hello World</div> 
     </asp:Panel> 
    </form> 
</body> 
</html> 
<script type="text/C#" runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
     System.IO.StringWriter sw = new System.IO.StringWriter(sb); 
     HtmlTextWriter htw = new HtmlTextWriter(sw); 
     Panel1.RenderControl(htw); 
     Trace.Write(sb.ToString()); 
    } 
</script> 

回答

0

在不需要标记,然后占位符文字是你的朋友:)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RenderControl.aspx.cs" Inherits="AccessibleMenu.RenderControl" Trace="true" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:PlaceHolder ID="PlaceHolder1" runat="server"> 
      <asp:Literal ID="Literal1" runat="server" Text="Literal1"></asp:Literal> 
     </asp:PlaceHolder> 
    </div> 
    </form> 
</body> 
</html> 
<script type="text/C#" runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
     System.IO.StringWriter sw = new System.IO.StringWriter(sb); 
     HtmlTextWriter htw = new HtmlTextWriter(sw); 
     PlaceHolder1.RenderControl(htw); 
     Trace.Write(sb.ToString()); 
    } 
</script> 
1

你必须改变你的HTML使用的文字:

<body> 
    <form id="form1" runat="server"> 
     <asp:Literal ID="HelloWorld" runat="server"></asp:Literal> 
    </form> 
</body> 

你的C#:

protected void Page_Load(object sender, EventArgs e) 
{ 
    HelloWorld.Text = 'Your text without HTML': 
} 
+0

对不起。我不能使用文字控制。我需要使用面板中的Label控件,并且它们的值是在运行时设置的。最后,我希望将这些Label控件中的文本传递给一个字符串变量并在其他地方使用。 – Aamir

相关问题