asp:占位符内容到字符串
简单的问题,但我找不到任何东西,是否有可能将asp:占位符的内容添加到字符串? 如果可能的话,这对服务器端来说会很棒。
卢克
如果您只想要占位符的文本内容:
string textualContent = ((LiteralControl) PlaceHolder1.Controls[0]).Text;
返回"Hello World"
:
Hello World
如果你还想获得渲染控件的html(以及它的所有子控件):
System.IO.TextWriter tw = new System.IO.StringWriter(); HtmlTextWriter h = new HtmlTextWriter(tw); PlaceHolder1.RenderControl(h); string html = tw.ToString();
对于这个aspx( GridView
是带有一些sameple数据的数据绑定):
Test-Label
将生成此html(取决于浏览器):
Test-Label ID Text 1 Row #1 2 Row #2 3 Row #3 4 Row #4 5 Row #5
请注意,您需要将页面指令更改为
EnableEventValidation="false"
并覆盖VerifyRenderingInServerForm
中的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
。
尝试Placeholder
的RenderControl
方法。
我为HyperLink
做了类似的事情,但是作为一个Placeholder
inheritance自System.Web.UI.Control
,它应该完全相同。 像这样的东西:
StringBuilder sb = new System.Text.StringBuilder(); using (var stringWriter = new System.IO.StringWriter(sb)) { using (var htmlTextWriter = new System.Web.UI.HtmlTextWriter(stringWriter)) { YourPlaceHolder.RenderControl(htmlTextWriter); } } return sb.ToString();
我写了一篇关于这个主题的简短文章: http : //www.tomot.de/en-us/article/3/asp.net/create-a-control-in-the-codebehind-and-retrieve-its渲染的输出
- 用html保存字符串作为图像
- 在AutoPostBack = true上触发jQuery代码?
- 检索使用C#.NET链接到Windows Azure网站的SQL Azure数据库的连接字符串
- DropDownList asp.net中所选项目的文本
- Microsoft.IdentityModel与System.IdentityModel
- 带有VSTS的SonarCloud有错误重复ProjectGuid:“00000000-0000-0000-0000-000000000000”
- 从静态访问ASP.NET控件(JS ajax调用)
- QueueClient.Receive()的异步方法?
- 将字节数组转换为Stream时,ReadTimeout引发exception