none
Remover atributo onclick de um href dentro de um gridview em C# RRS feed

  • Discussão Geral

  • Tenho uma página onde tem um gridview e em uma coluna tenho um href que tenho o evento onclick, tenho tb um checkbox que quando clicado executo via javascript uma função que retira o atributo onclick dessa coluna, o problema é que tem uma evento que gera um click em um botão e ele desfaz essa exclusão do atributo que fiz via javascript, preciso colocar no evento desse botão que ele checa se a linha da gridview o checkbox está mercado e tenho que retirar esse atributo.

    Não sei como faço para percorrer a gridview pegar esse href já que tudo está dentro de uma <td> não tem nome o href.


    Junior

    quarta-feira, 18 de abril de 2018 19:13

Todas as Respostas

  • se vc tiver um datakeyname no grid, voce pode recuperar os componentes assim:

    no gridview voce pode colocar um datakeynames. Obs, tem de ser um campo chave, e unico
    DataKeyNames="COD_PEDIDO".  

    Atenção: NO meu exemplo abaixo eu coloquei um IMAGEBUTTON, basta ajustar para seu componente

    Exemplo:
    <div>
    <asp:GridView ID="grvPedido" runat="server" GridLines="Vertical"
    AutoGenerateColumns="False" AllowSorting="false" ShowHeader="true" AllowPaging="False"
    ShowFooter="false" CssClass="tabela_grid0" RowStyle-CssClass="linha1" AlternatingRowStyle-CssClass="linha2"
    Width="655px" Height="350px" DataKeyNames="COD_PEDIDO"
    OnRowDataBound="grvPedido_RowDataBound">
    <HeaderStyle CssClass="header_grid" />
    <Columns>
    <asp:BoundField DataField="DESCRICAO" HeaderText="Descrição">
    <ItemStyle HorizontalAlign="Left" Width="300px"></ItemStyle>
    <HeaderStyle HorizontalAlign="Center" Width="300px"></HeaderStyle>
    </asp:BoundField>
    <asp:BoundField DataField="UNIDADE" HeaderText="Unidade">
    <ItemStyle HorizontalAlign="Left" Width="70px"></ItemStyle>
    <HeaderStyle HorizontalAlign="Center" Width="70px"></HeaderStyle>
    </asp:BoundField>
    <asp:TemplateField ItemStyle-HorizontalAlign="Center">
    <ItemStyle Width="20px" />
    <ItemTemplate>
    <asp:ImageButton ID="imgBtItemPedido" runat="server" ImageUrl="~/images/plus.gif"
    OnClick="imgBtItemPedido_Click" ToolTip="Itens" />
    </ItemTemplate>
    <HeaderStyle HorizontalAlign="Center" Width="20px" />
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Qtd">
    <ItemStyle HorizontalAlign="Center" Width="76px"></ItemStyle>
    <ItemTemplate>
    <asp:Label ID="lblQTD_FORMATO" runat="server" Text='<%# Bind("QTD_FORMATO") %>'
    Width="74px"></asp:Label>
    </ItemTemplate>
    <HeaderStyle HorizontalAlign="Center" Width="76px"></HeaderStyle>
    </asp:TemplateField>
    </Columns>
    </asp:GridView>

    </div>


    no rowdatabound (EVENTO DO GRID) voce pode adicionar a key como atributo do imgBtItemPedido  

    protected void grvPedido_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    try
    {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
    GridView gridView = (GridView)sender;

    string CODPDD = gridView.DataKeys[e.Row.RowIndex].Values["COD_PEDIDO"].ToString();
    ImageButton imgBtItemPedido = (ImageButton)e.Row.FindControl("imgBtItemPedido");
    imgBtItemPedido.Attributes.Add("CODPDD", CODPDD);
    }
    }
    catch (Exception ex)
    {
       
    }
    }
     


    no evento click, voce recupera assim:  (OBS: Click ocorreu dentro da linha do grid)

    protected void imgBtItemPedido_Click(object sender, ImageClickEventArgs e)
    {
    string COD_PEDIDO = "";
    try
    {
    ImageButton imgBtItemPedido = (ImageButton)sender;
    COD_PEDIDO = imgBtItemPedido.Attributes["CODPDD"].ToString();

    foreach (GridViewRow grvRow in grvPedido.Rows)
    {
    if (grvPedido.DataKeys[grvRow.RowIndex].Values["COD_PEDIDO"].ToString() == COD_PEDIDO)
    {
    Label lblQTD_FORMATOX = (Label)grvRow.FindControl("lblQTD_FORMATO");
    lblQTD_FORMATOX.Text = "ALTERADO AQUI...";
    break;
    }
    }
    }
    catch
    {
    }
    }

    Espero que te ajude. Não sei se entendi bem;

    sexta-feira, 13 de julho de 2018 19:58