Man*_*ish 13 .net c# asp.net user-controls
我想构建一个用户控件,假设MyDiv.ascx.这个控件呈现div标签,并在诸如添加少量属性之类的东西之后做更多代码,这在这里不是问题.问题是我希望用户控件的开始和结束标记之间的文本.例如:
文本与其他一些HTML标签一起使用.
因此,当做这样的事情时,我在运行网站时遇到了解析错误.此外,VS2008通过说" 元素 MyDiv 的开始和结束标签之间不允许内容 "来警告我.
问题1:我可以做这样的事情,即用户控件的开始和结束标签之间的文本/标记吗?
问题2:如果是,如何
Mar*_*art 17
建议的解决方案对我不起作用.我找到了以下解决方案:要么使用户控件继承Panel而不是仅仅UserControl,或者如果你有多个内容,就像我的情况一样,请将你的内容字段设为PlaceHolders而不是简单Controls.
在[PersistenceMode(PersistenceMode.InnerProperty)]被加入,以避免XHTML验证警告.
public partial class DrawerControl : UserControl
{
[PersistenceMode(PersistenceMode.InnerProperty)]
public PlaceHolder BodyContent { get; set; }
[PersistenceMode(PersistenceMode.InnerProperty)]
public PlaceHolder GripContent { get; set; }
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
phBodyContent.Controls.Add(BodyContent);
phGripContent.Controls.Add(GripContent);
}
}
Run Code Online (Sandbox Code Playgroud)
phBodyContent并且phGripContent是PlaceHolders.
这样我可以使用我的控件与ASPX中的任何内容:
<local:Drawer ID="ctlDrawer" runat="server">
<BodyContent>
<!--Insert any ASP content here-->
</BodyContent>
<GripContent>
<!--Insert any ASP content here-->
</GripContent>
</local:Drawer>
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 14
我相信你只需要在控件中应用几个属性:
[ParseChildren(false)]
[PersistChildren(true)]
public class MyDiv : UserControl
{
...
Run Code Online (Sandbox Code Playgroud)
然后你可能需要覆盖AddedControl- 我不确定.
这样说 - 这是我用过的唯一用户控件的作用:)
| 归档时间: |
|
| 查看次数: |
10182 次 |
| 最近记录: |