1

我觉得我记得以前有一篇文章解释了如何以声明方式设置对象属性的值,作为 ASP.NET 用户控件的属性公开。

我的情况是我有一个用户控件,其中包含一个 LinkBut​​ton,当然,除其他外。我希望用户控件的使用者能够在用于实现用户控件的声明性语法中设置链接按钮的 TEXT 值。

这是用户控件(设计器)...

<div id="toolbar">
    <ASP:LinkButton runat="server" id="btnFirst"    />
    <ASP:LinkButton runat="server" id="btnSecond"   />
    <ASP:LinkButton runat="server" id="btnThird"    />
    <ASP:LinkButton runat="server" id="btnFourth"   />
</div>

这是用户控件背后的代码中定义的属性...

public partial class Lookuptoolbar: UserControl
{
    public LinkButton FourthButton
    {
        get { return (this.btnFourth); }
    }
}

当我在页面中包含控件时,我希望能够使用以下声明语法设置我的第四个按钮的文本...

   <UC:MyControl id="uc1" runat="server" FourthButton_Text="Click Me!"/>

很久以前,我在某处读过一次,您可以使用下划线语法访问对象的属性(公开为用户/服务器控件的属性)。这根本不适合我。这不再被允许还是我错过了什么?有没有办法做到这一点?

谢谢你,加里

4

2 回答 2

2

好的......对于任何可能感兴趣的人,我想我已经找到了答案,或者至少是它的开始。语法将使用连字符而不是下划线。所以正确的语法是。

 <UC:MyControl id="uc1" runat="server" FourthButton-Text="Click Me!"/> 

当访问复杂类型的“子属性”时,可能会有更多;我没有详细讨论它,但 Microsoft Press (ISBN 0-7356-1582-9) 的“开发 Microsoft ASP.NET 服务器控件和组件”一书在第 218-222 页上讨论了这一点。

如果有人学到更多东西,我很想听听,否则我希望这对那里的人有所帮助!

-加里

于 2011-08-25T12:46:14.503 回答
0

我从未听说或见过有人使用您所说的方法(使用下划线在声明性语法中访问对象属性)。

做你想做的事情的一种方法是在与 LinkBut​​ton 的 text 属性交互的用户控件上公开一个 FourthButtonText 属性:

public string FourthButtonText
{
    get { return this.btnFourth.Text; }
    set { this.btnFourth.Text = value; }
}
于 2011-08-18T17:55:00.987 回答