将控件转换为html
本文关键字:html 转换 控件 | 更新日期: 2023-09-27 18:11:04
我需要"翻译"devexpress控件(例如复选框)到控制器中的html字符串。就像书上写的那样。请告知怎么做。
页面:
<input name="myCheckBox" id="chB_S" style="width: 0px; height: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; position: relative; background-color: transparent;" readonly="readonly" value="I"/>
控制器:
CheckBoxSettings s = new CheckBoxSettings();
s.Name = "myCheckBox";
s.Properties.ClientSideEvents.ValueChanged = "function(s,e){alert('Selection changed');}";
CheckBoxExtension chBut = new CheckBoxExtension(s);
string zzz = chBut.GetHtml().ToHtmlString(); //Get empty string instead of html
public static string RenderView(string path, object data)
{
Page pageHolder = new Page();
UserControl viewControl = (UserControl) pageHolder.LoadControl(path);
if (data != null)
{
Type viewControlType = viewControl.GetType();
FieldInfo field = viewControlType.GetField("Data");
if (field != null)
{
field.SetValue(viewControl, data);
}
else
{
throw new Exception("View file: " + path + " does not have a public Data property");
}
}
pageHolder.Controls.Add(viewControl);
StringWriter output = new StringWriter();
HttpContext.Current.Server.Execute(pageHolder, output, false);
return output.ToString();
}
上述方法可与ASP一起使用。NET应用程序将UserControl转换为HTML。你可以参考它来创建一个自定义的RenderView来将控件转换为Html。
此外(不确定MVC),但在asp.net中所有控件都是从WebControls派生的,所以我认为你也可以这样做。现在使用MVC控件将在成功的情况下更新。