ASP.Net Controle do Usuário
-
22-07-2019 - |
Pergunta
Eu estou tentando construir um controle de usuário ASP.net que usa um repetidor para repetir um número de itens em um ObjectDataSource que eu preciso para passar para o controle de usuário. Não tenho certeza como passar a fonte objeto de dados no entanto. Qualquer um sabe como fazer isso?
Solução
Você pode criar uma propriedade no controle de usuário e passá-lo para o repetidor.
public class CustomUserControl
{
private Repeater repeater;
public ObjectDataSource DataSource
{
get
{
return this.repeater.DataSource;
}
set
{
this.repeater.DataSource = value;
}
}
}
Outras dicas
A seguir estão os passos difíceis de fazer isso (não testado).
-
Lista de fazer o seu usercontrol um controle de ligação de dados. Dê uma olhada neste artigo para ver um exemplo http://geekswithblogs.net/mnf/articles/ 92205.aspx .
-
na página que está consumindo o seu usercontrol definir a propriedade DataSourceId declarativa ou em código para sua fonte de dados objeto.
-
Listar item Bind sua repetidora à propriedade DataSourceId interna através de uma expressão de ligação declarativa.
Se você fizer você controla Herdar do CompositeDataBoundControl
[ToolboxData("<{0}:TopNav runat=server></{0}:TopNav>")]
public class TopNav : CompositeDataBoundControl
pode atribuir o DataSourceID a ele.
<uc1:TopNav ID="YUITopNav1" runat="server" DataSourceID="ObjectDataSource1" />
, em seguida, você controla a implementar
protected override int CreateChildControls(IEnumerable dataSource, bool dataBinding)
{
this.Repeater1.DataSource = dataSource;
this.Repeater1.DataBind();
}
Onde a fonte de dados são dados provenientes de seu ObjectDataSource