Пользовательский элемент управления (ascx) в asp.net и его привязываемые свойства не отображаются в контейнере данных - PullRequest
2 голосов
/ 29 сентября 2011

Когда я добавляю пользовательский элемент управления, имеющий привязываемые свойства, на страницу asp.net, я не вижу его привязываемых свойств в диалоговом окне дизайнера, когда нажимаю кнопку Изменить привязки данных в представлении Repeater-Listview

Я добавляю любые другие дескрипторы свойства?

разметка будет такой же внутри ретранслятора или аналогичного элемента управления

<uc1:Menu ID="Menu1" superman="<% Eval("userid") %>" runat="server" />

для свойства привязки, которое я использую только

[System.ComponentModel.DefaultBindingProperty("superman")]
    [System.ComponentModel.Bindable(true)]
    public int superman
    {
        get;
        set;
    }

Люди обсуждают это здесь, но не могут найти решение

This is the problematic place


And this is the definition of the user control

Ответы [ 2 ]

4 голосов
/ 16 июня 2012

Я думаю, что это может быть проблема с Visual Studio, я не нашел способ показать свойства пользовательских элементов управления, но все же, вы можете связать свойство, даже если оно не отображается в окне параметров:

Это то, как вы связываете это:

В коде управления пользователя позади:

[Bindable(true)]
public string MyProperty
{
    get
    {
        return this.lblMessage.Text;
    }
    set
    {
        this.lblMessage.Text = value + DateTime.Now.ToString();
    }
}

В файле ASCX:

<asp:Label ID="lblMessage" Text="something" runat="server" />

На странице ASPX:

<asp:DataList runat="server" ID="dataList" Width="50%" 
    DataSourceID="ObjectDataSource1">
    <ItemTemplate>
        <uc1:WebUserControl1 runat="server" ID="myUC" MyProperty='<%# Eval("Name") %>' />
    </ItemTemplate>
</asp:DataList>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
    SelectMethod="GetProducts" TypeName="WebApplication1.Repository">
</asp:ObjectDataSource>

Просто добавьте свойство, которое вы создали в вашем UC, в тег:

<uc1:WebUserControl1 runat="server" ID="myUC" MyProperty='<%# Eval("Name") %>' />

Это вывод:

enter image description here

0 голосов
/ 21 июня 2012

Я думаю, что вы просто делаете разметку, печатая ее, пользовательский элемент управления должен быть перетащен на страницу в режиме конструктора. попробуйте это может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...