c# - ASP :placeholder contents to string

标签 c# asp.net string placeholder

简单的问题,但我在上面找不到任何东西,是否可以将 asp:placeholder 的内容获取到字符串?如果可能的话,做服务器端会很棒。

卢克

最佳答案

如果您只想要占位符的文本内容:

string textualContent = ((LiteralControl) PlaceHolder1.Controls[0]).Text;

返回 “ Hello World ” 用于:

<asp:PlaceHolder ID="PlaceHolder1" runat="server">Hello World</asp:PlaceHolder>

如果您还想获取呈现控件(及其所有子控件)的 html:

System.IO.TextWriter tw = new System.IO.StringWriter();
HtmlTextWriter h = new HtmlTextWriter(tw);
PlaceHolder1.RenderControl(h);
string html = tw.ToString();

对于这个 aspx(GridView 与一些相同的数据进行了数据绑定(bind)):

<asp:PlaceHolder ID="PlaceHolder1" runat="server">
    <asp:Label ID="LblTest" runat="server">Test-Label</asp:Label>
    <asp:TextBox ID="TxtTest" runat="server" Text="Foo"></asp:TextBox>
    <asp:GridView runat="server" ID="GridView1"></asp:GridView>
    <textarea name="TextArea1" rows="2" cols="1">
    First line
    Second line
    </textarea>
</asp:PlaceHolder>

将生成此 html(取决于浏览器):

<span id="MainContent_LblTest">Test-Label</span><input name="ctl00$MainContent$TxtTest" type="text" value="Foo" id="MainContent_TxtTest" /><div>
    <table cellspacing="0" rules="all" border="1" id="MainContent_GridView1" style="border-collapse:collapse;">
        <tr>
            <th scope="col">ID</th><th scope="col">Text</th>
        </tr><tr>
            <td>1</td><td>Row #1</td>
        </tr><tr>
            <td>2</td><td>Row #2</td>
        </tr><tr>
            <td>3</td><td>Row #3</td>
        </tr><tr>
            <td>4</td><td>Row #4</td>
        </tr><tr>
            <td>5</td><td>Row #5</td>
        </tr>
    </table>
</div>
    <textarea name="TextArea1" rows="2" cols="1">
    First line
    Second line
    </textarea>

请注意,您需要将页面指令更改为

EnableEventValidation="false"

并覆盖 Page 中的 VerifyRenderingInServerForm

public override void VerifyRenderingInServerForm(Control control)
{
    /* Confirms that an HtmlForm control is rendered for the specified ASP.NET
       server control at run time. */
}

手动调用 RenderControl 时。

关于c# - ASP :placeholder contents to string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14321937/

相关文章:

c# - Dll导入不完整的名称

c# - 使属性只能通过绑定(bind)的编辑器(组件)进行编辑

c# 转换为从类型名获取的类型作为字符串

c# - Windows Phone 8 中的 Websockets 客户端支持

c# - 临时存储文件直到使用文件的最佳方法

javascript - 无法从 asp.net 内容页面访问 js 或 jquery 文件

c - strstr 带有常规 char 数组,而不是字符串

c# - 如何访问隐藏代码中的html控件

c - 从固定闪存位置访问 C 字符串

Java 编程 - 当我需要字符时,我的用户名显示整数。为什么?