asp.net自定义控件中的代码块+文字

时间:2012-03-23 10:56:06

标签: c# asp.net

我正在寻找2天来完成以下任务: 我想要一个自定义控件,它将采用内联文本+代码块。

我想要实现的目标:

<asp:MyCustom runat="server">
    Hello there, <%= User.Name%>
</asp:MyCustom>

以下是我目前的情况:

[ParseChildren(true), PersistChildren(true)]
public class MyCustom
{
    [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
    public ITemplate Text { get; set; }

    //Constructor
    public MyCustom()
    {
        Text = new StringITemplate(text);
    }
}

最重要的是,控件实际上是从“UserControl”继承的父用户控件列表的成员,它会覆盖Render方法。此外,还有一个StringITemplate类,它允许将纯字符串分配给ITemplate属性。

最终,我希望实现以下目标:

<asp:MyCustomItemControl runat="server">
    <Items>
        <asp:Item>Hello there, <%= User.Name%></asp:Item>
        <asp:Item><%= SomeOtherString%></asp:Item>
    </Items>
</asp:MyCustom>

现在,如果我的第一个请求确实有效,我会很高兴。看起来像抓住web /用户/自定义/服务器的荒野 - asp.net中的控件及其属性。

我现在所拥有的完整代码可以在这里查看: http://pastebin.com/3gic2Y0u

感谢阅读:)

1 个答案:

答案 0 :(得分:2)

我只是在找这样的东西。

我在这里找到了这个答案,它为我解答了这个问题:

How do I make my ASP.NET server control take an embedded code block as a property value?

答案摘要是: <%=类型代码块旨在直接提供给streamwriter。相反,请使用<%#代码块并包含

  

This.DataBind()

Page_Init类的Item