none
Selecionar linha no gridview clicando em qualqer coluna RRS feed

  • Pergunta

  • Por favor, como posso selecionar uma linha do gridview e retornar o valor definido em datakeynames clicando em qualquer coluna sem usar botões. Semelhante ao Windows form. não quero que fique aparecendo "Select" em todas as linha. Grato pela atenção.

    sábado, 20 de setembro de 2014 10:37

Respostas

  • Boa tarde Edson,

    Eu faço da seguinte forma, não sei se é a mais elegante, porém é funcional. Primeiro eu tenho que colocar um LinkButton dentro da Grid, e coloco um display:none nele.

    <asp:TemplateField>
    	<ItemTemplate>                                                                
    		<asp:LinkButton ID="lbSelecionar" runat="server" CausesValidation="False" CommandName="Select"
                                    Style="display: none;"></asp:LinkButton>
             </ItemTemplate>
    </asp:TemplateField>

    Após isso, no evento OnRowDataBound, fica da seguinte forma:

    protected void gvResult_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    	if (e.Row.RowType == DataControlRowType.DataRow)
    	{
    		LinkButton lb = (LinkButton)e.Row.FindControl("lbSelecionar");
    		e.Row.Attributes.Add("onClick", Page.ClientScript.GetPostBackEventReference(lb, ""));
    	}
    }

    Após isso, em qualquer lugar que você clicar da grid, ira acionar o Método OnSelectedIndexChanged.

    []s

    • Marcado como Resposta Edson BH quinta-feira, 25 de setembro de 2014 14:39
    segunda-feira, 22 de setembro de 2014 18:31

Todas as Respostas

  • Pelo gridview eu desconheço como fazer como vc quer. Pode ser com um componente de terceiros.

    Junior

    segunda-feira, 22 de setembro de 2014 14:52
  • Boa tarde Edson,

    Eu faço da seguinte forma, não sei se é a mais elegante, porém é funcional. Primeiro eu tenho que colocar um LinkButton dentro da Grid, e coloco um display:none nele.

    <asp:TemplateField>
    	<ItemTemplate>                                                                
    		<asp:LinkButton ID="lbSelecionar" runat="server" CausesValidation="False" CommandName="Select"
                                    Style="display: none;"></asp:LinkButton>
             </ItemTemplate>
    </asp:TemplateField>

    Após isso, no evento OnRowDataBound, fica da seguinte forma:

    protected void gvResult_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    	if (e.Row.RowType == DataControlRowType.DataRow)
    	{
    		LinkButton lb = (LinkButton)e.Row.FindControl("lbSelecionar");
    		e.Row.Attributes.Add("onClick", Page.ClientScript.GetPostBackEventReference(lb, ""));
    	}
    }

    Após isso, em qualquer lugar que você clicar da grid, ira acionar o Método OnSelectedIndexChanged.

    []s

    • Marcado como Resposta Edson BH quinta-feira, 25 de setembro de 2014 14:39
    segunda-feira, 22 de setembro de 2014 18:31