如何获取服务控件的内容代码
有一个HtmlForm htmlForm ,包含runat="server"代码,如下红色代码所示,我想用 string str=htmlForm.innerHtml取得代码文本。可是提示错误:“无法获取 innerHtml 的内部内容,因为该内容不是文本。”
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" Height="641px" Width="511px"></asp:TextBox>
</div>
</form>
我用网上说的方法,StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
htmlForm .RenderControl(htw);
然后调用Response.Write(sb.ToString());,得到的文本是下面兰色代码所示。可这并不是我想要的结果。我如何才能最得上面包含runat="server"代码(上面红色部分)
<form name="form1" method="post" action="" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEzMzE5MDUyNjFkZFGxJW7d6YIoAtGbIeoc7bamtFmTjnBEeVp/LvrtDyoy" />
</div>
<div>
<input name="TextBox1" type="text" value="" id="TextBox1" />
</div>
</form>
------解决方案-------------------- 这个被编译到dll中了,哪里来的什么“上面包含runat="server"代码(上面红色部分)”啊?
如果想得到,你干脆把这个文件保存为资源文件然后读取文件好了。
------解决方案-------------------- 所谓“得到”,是服务器输出html流,还是客户端DOM操作?你能否说出来是哪一个阶段?
------解决方案-------------------- 探讨 有一个HtmlForm htmlForm ,包含runat="server"代码,如下红色代码所示,我想用 string
------解决方案-------------------- 你新建一个aspx页面不写任何东西
在Page_Load中遍历controls
C# code
foreach (Control c in this.Controls)
{
if (c.ClientID == "form1")
{
string text = (c as System.Web.UI.HtmlControls.HtmlForm).InnerHtml;
//(c as System.Web.UI.HtmlControls.HtmlForm).InnerHtml="test";你也可以赋值。
Response.Write(text);
Response.End();
}
}