ASP.Net User Control - PullRequest
       21

ASP.Net User Control

0 голосов
/ 25 июня 2009

Я пытаюсь создать пользовательский элемент управления ASP.net, который использует Repeater для перебора нескольких элементов в ObjectDataSource, которые мне нужно передать пользовательскому элементу управления. Я не уверен, как передать объектный источник данных, хотя. Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

3 голосов
/ 25 июня 2009

Вы можете создать свойство в пользовательском элементе управления и передать его повторителю.

public class CustomUserControl
{
  private Repeater repeater;

  public ObjectDataSource DataSource
  {
    get
    {
      return this.repeater.DataSource;
    }
    set
    {
      this.repeater.DataSource = value;
    }
  }
}
1 голос
/ 25 июня 2009

Ниже приведены грубые шаги для этого (не проверено).

  • Список делает ваш пользовательский элемент управления привязанным к данным. Взгляните на эту статью, чтобы увидеть пример http://geekswithblogs.net/mnf/articles/92205.aspx.

  • на странице, которая использует ваш usercontrol, установите свойство DataSourceId декларативно или в коде для вашего источника данных объекта.

    </ uc1: YourUserControl>

  • Элемент списка Свяжите свой ретранслятор с внутренним свойством DataSourceId с помощью декларативного выражения привязки.

    '> </ asp: repeater>

0 голосов
/ 25 июня 2009

Если вы управляете наследованием от CompositeDataBoundControl

[ToolboxData("<{0}:TopNav runat=server></{0}:TopNav>")]
public class TopNav : CompositeDataBoundControl

вы можете назначить ему DataSourceID.

<uc1:TopNav ID="YUITopNav1" runat="server" DataSourceID="ObjectDataSource1"  />

тогда в вашем контроле вы реализуете

    protected override int CreateChildControls(IEnumerable dataSource, bool dataBinding)
    {
        this.Repeater1.DataSource = dataSource;
        this.Repeater1.DataBind();
    }

Где источник данных - это данные, поступающие из вашего ObjectDataSource

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