2014-02-28 131 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

相關問題