Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Antonio Montana

Bind através de Propriedades

Recommended Posts

Hola Personas!

 

Estou com uma Dúvida!

 

Tenho o costume de utilizar UserControl da seguinte forma:

 

<!--User.ascx-->
<table class="form" cellpadding="0" cellspacing="0">
   <tr>
       <td class="label">Benutzername</td>
       <td class="field"><asp:Literal ID="litUsername" runat="server"></td>
   </tr>
   <tr>
       <td class="label">Passwort</td>
       <td class="field"><asp:Literal ID="litPassword" runat="server"></td>
   </tr>
</table>

 

Ou seja, no meu Codebehind faco o Bind dos meus Literals, por exemplo:

 

User user = (User)Clipboard.User;

this.litUsername.Text = user.Username;

this.litPassword.Text = user.Password;

 

Porém gostaria agora de fazer o mesmo, porém sem o Literal, usando direto o Binder no HTML:

 

<!--User.ascx-->
<table class="form" cellpadding="0" cellspacing="0">
   <tr>
       <td class="label">Benutzername</td>
       <td class="field"><%# Eval("Username") %></td>
   </tr>
   <tr>
       <td class="label">Passwort</td>
       <td class="field"><%# Eval("Password")%></td>
   </tr>
</table>

 

Eu tentei da seguinte forma, mas nao funcionou:

 

protected void Page_Load(object sender, EventArgs e)
{
    this.DataBind();
}

public override void DataBind()
{
    User user = (User)Clipboard.User;
}

 

O que preciso fazer para que isso funcione?

 

Muchas gracias!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hola Personas!

 

Estou com uma Dúvida!

 

Tenho o costume de utilizar UserControl da seguinte forma:

 

<!--User.ascx-->
<table class="form" cellpadding="0" cellspacing="0">
   <tr>
       <td class="label">Benutzername</td>
       <td class="field"><asp:Literal ID="litUsername" runat="server"></td>
   </tr>
   <tr>
       <td class="label">Passwort</td>
       <td class="field"><asp:Literal ID="litPassword" runat="server"></td>
   </tr>
</table>

 

Ou seja, no meu Codebehind faco o Bind dos meus Literals, por exemplo:

 

User user = (User)Clipboard.User;

this.litUsername.Text = user.Username;

this.litPassword.Text = user.Password;

 

Porém gostaria agora de fazer o mesmo, porém sem o Literal, usando direto o Binder no HTML:

 

<!--User.ascx-->
<table class="form" cellpadding="0" cellspacing="0">
   <tr>
       <td class="label">Benutzername</td>
       <td class="field"><%# Eval("Username") %></td>
   </tr>
   <tr>
       <td class="label">Passwort</td>
       <td class="field"><%# Eval("Password")%></td>
   </tr>
</table>

 

Eu tentei da seguinte forma, mas nao funcionou:

 

protected void Page_Load(object sender, EventArgs e)
{
    this.DataBind();
}

public override void DataBind()
{
    User user = (User)Clipboard.User;
}

 

O que preciso fazer para que isso funcione?

 

Muchas gracias!

 

Antonio, pelo que eu entendo, o binder "Eval()" é usado quando se tem conexões em banco de dados, definidos no web.config. Você não mencionou nenhuma conexão a banco de dados. Tente adicionar um xxxDataSource, sendo para qualquer banco de dados que você escolher, faça a conexão com o DataSource e tente usar o binder que funcionará!

 

Espero ter ajudado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gracias Jones!

 

Mas nao, da pra fazer um Binder sem conexao ao Banco de Dados, por exemplo, utilizando ICollection, List<>, e etc...

 

Entao, o problema, é que nao tenho nenhum DataSource pra eu fazer o Bind no meu HTML, gostaria de saber como faco pra falar que o DataSOurce deste UserControl é igual o meu Objeto User, por exemplo:

 

UserControl.DataSource = user;

UserControl.Bind();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gracias Jones!

 

Mas nao, da pra fazer um Binder sem conexao ao Banco de Dados, por exemplo, utilizando ICollection, List<>, e etc...

 

Entao, o problema, é que nao tenho nenhum DataSource pra eu fazer o Bind no meu HTML, gostaria de saber como faco pra falar que o DataSOurce deste UserControl é igual o meu Objeto User, por exemplo:

 

UserControl.DataSource = user;

UserControl.Bind();

 

Só queria avisar que o que eu queria fazer nao valeria a pena para o caso.

Primeiramente tentei usando FormView, porém meu DataSource precisa ser uma Lista ou algum derivado de IList, IDataSource, IEnumerable e etc, o que no meu caso nao era! Ou seja, teria que implementar uma dessas Interfaces na minha Class User para que isso funcionasse, ou seja, trabalho a toa! Talvez sirva ai de licao ou ajuda pra alguma pesquisa no Futuro!

 

Muchas gracias!

 

El Tonny!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.