gpt4 book ai didi

c# - 将字符串转换为 WebControls - asp.net

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:00 25 4
gpt4 key购买 nike

如果你看到下面的代码

Table tblTest = (Table)tblControl;
StringBuilder text = new StringBuilder();
StringWriter writer = new StringWriter(text);
HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
tblTest.RenderControl(htmlWriter);
htmlCode = text.ToString();

我在这里将表格对象转换为字符串。

我会得到 "<table><tr><td>item</td></tr></table>" 的输出

现在我想回滚它。我有一个字符串,我需要将其转换为 WebControls.Table 对象。请有人提出一些建议。

最佳答案

创建 HtmlControl 呈现时使用的名称到控件的映射。然后您可以获取发送给您的 xml 字符串并使用 XDocument.Parse 加载它。从那里您可以递归地构建控制结构。

Dictionary<string, HtmlContainerControl> controlConstructor = new Dictionary<string, HtmlContainerControl>
{
{"table", new HtmlTable()},
{"tr", new HtmlTableRow()},
{"td", new HtmlTableCell()}
};
string xml = "<table><tr><td>item</td></tr></table>";
var htmlDoc = XElement.Parse(xml);
Func<XElement, HtmlControl> constructHtmlStructure = null;
constructHtmlStructure = e =>
{
var control = controlConstructor[e.Name.ToString()];
if (e.HasElements)
control.Controls.Add(constructHtmlStructure(e.Elements().Single()));
else
control.InnerText = e.Value;
return control;
};

var structure = constructHtmlStructure(htmlDoc);

是一个非常简单的开始。您将需要更复杂的东西来获得所有控件。请注意,它们有一个 TagName 属性,您可以使用它来捕获构建字典时的所有控件。

关于c# - 将字符串转换为 WebControls - asp.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com