如何获取服务器端控件的标签?我猜它就像下面这样:
TextBox textBox=new TextBox();
GetTag(TextBox textBox)
{
...
}
结果类似<asp:TextBox />
(控件的设计时标记)。
当我将控件更改为CheckBox
时,结果应该类似于<asp:CheckBox />
。
答案 0 :(得分:2)
没有方法可以为你返回这些标签,但是构建一个你自己应该很容易的字典。
Dictionary<Type, string> d = new Dictionary<Type, string>();
d.Add(typeof(TextBox), @"<\asp:TextBox />");
TextBox t = new TextBox();
string tag= (d[t.GetType()]);
等等......
答案 1 :(得分:0)
您可以使用 RenderControl
方法
StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
{
using (HtmlTextWriter textWriter = new HtmlTextWriter(sw))
{
textBox.RenderControl(textWriter);
}
}
sb
将包含textBox
的html内容。
击>
修改强>:
您可以获取aspx内容并找到元素标记。像这样:
String path = Server.MapPath("~/[aspx path]");
string content = File.ReadAllText(path);
string controlID = "textBox";
int startIndex = content.IndexOf("<asp:TextBox ID=\"" + controlID + "\"");
bool foundEndTag = false;
string controlTag = "";
int i = startIndex;
while (!foundEndTag)
{
if (content[i] == '>')
foundEndTag = true;
controlTag += content[i];
i++;
}