none
DataBoud - Ajuda RRS feed

  • Pergunta

  • Bom, estava utilizando o Eval quando me deparo com um erro, então achei um tal de "DataBound" vi um artigo porém não entendi muito bem, não sei absolutamente nada sobre o mesmo e gostaria de usa-lo para criar query-strings em meu repeater, caso alguém possa me dar um tutorial explicando cada linha agradeço
    quarta-feira, 21 de setembro de 2011 23:22

Todas as Respostas

  • Se quiser fazer direto pode utilizar: <% Request.QueryString["SuaQueryString"].ToString(); %>

    Pode ser que não funcione, pois o controle pede uma fonte de dados (dataSource).

    Normalmente eu utilizou o "Eval" quando preencho o controle via código.

    ótimas fontes:

    http://www.macoratti.net/aspn_rep.htm
    http://www.macoratti.net/07/07/aspn_rpr.htm
    http://www.dotnetinterior.com.br/v1/?p=365

    Existe mesmo a necessidade de utilizar um repeater??? Se for para valores que você recebe pela querystring não vejo necessidade.


    --
    Marque as respostas e ajude a melhorar a busca do fórum.

    quinta-feira, 22 de setembro de 2011 12:35
  • Sim é um tipo de sistema de notícias.
    quinta-feira, 22 de setembro de 2011 20:24
  • Mas você vc utiliza o valor da query para que??
    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    quinta-feira, 22 de setembro de 2011 20:31
  • Para exibir a notícia completa.

     

    quinta-feira, 22 de setembro de 2011 22:28
  • Amigo, veja se o exemplo abaixo lhe ajuda:

    para a classe:

    public class Noticia
        {
            public int Id { get; set; }
            public string Titulo { get; set; }
        }
    


    monto a seguinte coleção:

    List<Noticia> Noticias = new List<Noticia>()
                    {
                        new Noticia(){Id = 1, Titulo="Lançado a .Net Framework 4.5"},
                        new Noticia(){Id=2, Titulo="Lançado Preview do Windows 8"},
                        new Noticia(){Id=3, Titulo="Microsoft Windows Phone 7.5 codename Mango, será lançado próximo mês"}
                    };
                    Repeater1.DataSource = Noticias;
                    Repeater1.DataBind();
    


    Estruturo meu LinkButton dentro do repeater da seguinte maneira:

    <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <asp:LinkButton runat="server" ID="lkb" 
                CommandArgument ='<%#Eval("Id") %>' 
                Text = '<%#Eval("Titulo") %>'
                OnCommand="LinkButton_Click"></asp:LinkButton>
            </ItemTemplate>
        </asp:Repeater>
    

    veja que estou pegando dinamicamente tanto o título da notícia quando o ID que estou passando através da propriedade CommandArgument. O método do click será o mesmo para todos os LinkButtons, veja como ele será:

     protected void LinkButton_Click(object sender, CommandEventArgs e)
            {
                Response.Redirect(string.Format("~/Noticia.aspx?id={0}", e.CommandArgument));
            }
    



    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    quinta-feira, 22 de setembro de 2011 23:45
  • André, o exemplo o Olavo está perfeito.

    A querystring você vai recuperar apenas 1 vez e vai utilizar para buscar a notícia pelo código:

        protected void Page_Load(object sender, EventArgs e)
        {
    if (!IsPostBack)
    { if (Request.QueryString["IdNoticia"] != null) { int IdNoticia = int.Parse(Request.QueryString["IdNoticia"].ToString()); SeuMetodoParaCarregarNoticiaPorId(IdNoticia); }
    } }

     

     


    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    sexta-feira, 23 de setembro de 2011 02:42