如何制作一个 ASP.Net 2.0 Web 控件,它可以接受 HTML 作为开始标记和结束标记之间的字符串(对于属性)?
基本上我希望能够有一个自定义控件:
public class MyControl : WebControl
{
private string html;
public string Html
{
get { return html; }
set { html = value; }
}
}
然后在 ASPX 页面中像这样使用它:
<tag:MyControl runat="server">
<div>
<span>Some Text</span>
<button>Do Something</button>
</div>
</tag:MyControl>
然后将标签内的 HTML:MyControl 开始和关闭标签放入控件的 HTML 属性中。
这可能吗? 我确信是这样,我只是没有太多自定义 ASP.Net 控件的经验。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你可以按照这个思路做一些事情
,然后在 html 方面它看起来像这样
You could do something along the lines of this
and then on the html side it'd look like this
我想您会想看看模板化控件。 请参阅此处和此处查看示例。
(我会删除我的其他答案,因为我似乎错过了重点)。
I guess you'll want to look at templated controls. See here and here for examples.
(I'll delete my other answer, since I seemed to miss the point).
最简单的方法就是简单地使用已经存在的东西:
就像魅力一样!
与您的问题的唯一区别是,内容存储在名为
Text
的属性中,而不是Html
中。 你能忍受吗?否则,您可以使用 Literal 的重新实现,如下所示:
The easiest way is to simply use what already exists:
Works like a charm!
The only difference with your question is, that the contents is stored in the property named
Text
, rather thanHtml
. Can you live with that?Otherwise, you can use a re-implementation of Literal like this one:
您可以创建一个 Literal 控件(以编程方式)并将其添加到自定义控件的 Controls 集合中。 然后从 Html 属性中设置文字的 Text 属性:
创建文字(例如在 OnInit 中):
Html 属性:
You could create a Literal control (programmatically) and add it to the custom control's Controls collection. Then set the Literal's Text property from the Html Property:
Create the Literal (e.g. in OnInit):
Html property: