Asp.net RenderControl是否可以输出WebControl标记而不是HTML标记?
我想利用asp.net WebControl类(TextBox、CheckBoxList、Button等)构建一个字符串,该字符串可以使用TemplateControl.ParseControl()解析为控件 我使用以下代码从网络控件输出HTML:Asp.net RenderControl是否可以输出WebControl标记而不是HTML标记?,asp.net,web-controls,rendercontrol,Asp.net,Web Controls,Rendercontrol,我想利用asp.net WebControl类(TextBox、CheckBoxList、Button等)构建一个字符串,该字符串可以使用TemplateControl.ParseControl()解析为控件 我使用以下代码从网络控件输出HTML: TextBox control = new TextBox(); StringBuilder sb = new StringBuilder(); HtmlTextWriter objHtml = new HtmlTextWriter(new Syst
TextBox control = new TextBox();
StringBuilder sb = new StringBuilder();
HtmlTextWriter objHtml = new HtmlTextWriter(new System.IO.StringWriter(sb));
control.RenderControl(objHtml);
这将产生:
"<input name=\"Phone\" type=\"text\" id=\"Phone\" />"
“”
是否可以输出以下内容
"<asp:Textbox name=\"Phone\" id=\"Phone\" runat=\"server\" />"
“”
为什么不为所需的每种控件类型存储一个字符串,然后通过键引用它?这只是一次努力
string ctrlMarkup = GetMarkupFor("Textbox")
您可能想要更改Id和其他属性,并且应该能够在实例化并可能将其强制转换为特定类型后进行更改
或者将parseControl移动到getter中并返回一个现成的控件
string id= "Button1";
string text = "Save";
Control tbx= GetControl("TextBox", id, text);
public Control GetControl(string type, string id, string text)
{
Control ctrl;
switch(type)
{
case: "TextBox"
ctrl= (TextBox)TemplateControl.ParseControl("<asp:Textbox runat=\"server\" />");
((TextBox)ctrl).Id = id;
((TextBox)ctrl).Text = text;
break;
}
return ctrl;
}
string id=“Button1”;
string text=“保存”;
控件tbx=GetControl(“文本框”,id,文本);
公共控件GetControl(字符串类型、字符串id、字符串文本)
{
控制ctrl;
开关(类型)
{
案例:“文本框”
ctrl=(文本框)TemplateControl.ParseControl(“”);
((文本框)ctrl).Id=Id;
((文本框)ctrl).Text=Text;
打破
}
返回ctrl;
}
为什么不为所需的每种控件类型存储一个字符串,然后通过键引用它?这只是一次努力
string ctrlMarkup = GetMarkupFor("Textbox")
您可能想要更改Id和其他属性,并且应该能够在实例化并可能将其强制转换为特定类型后进行更改
或者将parseControl移动到getter中并返回一个现成的控件
string id= "Button1";
string text = "Save";
Control tbx= GetControl("TextBox", id, text);
public Control GetControl(string type, string id, string text)
{
Control ctrl;
switch(type)
{
case: "TextBox"
ctrl= (TextBox)TemplateControl.ParseControl("<asp:Textbox runat=\"server\" />");
((TextBox)ctrl).Id = id;
((TextBox)ctrl).Text = text;
break;
}
return ctrl;
}
string id=“Button1”;
string text=“保存”;
控件tbx=GetControl(“文本框”,id,文本);
公共控件GetControl(字符串类型、字符串id、字符串文本)
{
控制ctrl;
开关(类型)
{
案例:“文本框”
ctrl=(文本框)TemplateControl.ParseControl(“”);
((文本框)ctrl).Id=Id;
((文本框)ctrl).Text=Text;
打破
}
返回ctrl;
}