Usuário com melhor resposta
Dúvida UpdatePanel GridView

Pergunta
-
Tenho um GridView dentro de um Update Panel, porém quando eu clico no evento do Grid GridView3_SelectedIndexChanged, o evento não acontece, já tentei colocar como trigger direto no evento selectedindexchanged, porém não funciona também, segue o código do meu UpdatePanel com GridView:
<asp:UpdatePanel ID="UpdatePanel5" runat="server" ClientIDMode="Predictable"> <ContentTemplate> <div class="financeiro"> <asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" TabIndex="10" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" OnPageIndexChanging="GridView3_PageIndexChanging" OnSelectedIndexChanged="GridView3_SelectedIndexChanged" OnRowEditing="GridView3_RowEditing" OnRowCreated="GridView3_RowCreated"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" SortExpression="id" /> <asp:BoundField DataField="vencimento" HeaderText="Vencimento" SortExpression="vencimento" DataFormatString="{0:d}" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"></asp:BoundField> <asp:BoundField DataField="observacao" HeaderText="Observação" SortExpression="observacao" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundField> <asp:BoundField DataField="valor_pago" HeaderText="Valor" SortExpression="valor_pago" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundField> <asp:BoundField DataField="valor" HeaderText=" Valor Pago" SortExpression="valor" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundField> <asp:CheckBoxField DataField="quitado" HeaderText="Quitado" SortExpression="quitado" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:CheckBoxField> <asp:CommandField ShowSelectButton="True" SelectText="<img src='images/icon/Misc-Edit-icon.png' title='Editar'/>" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" /> <asp:CommandField ShowDeleteButton="True" DeleteText="<img src='images/icon/Trash-can-icon.png' title='Excluir' />" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:CommandField> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> </div> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="GridView3" /> </Triggers> </asp:UpdatePanel>
E aqui o código dentro do GridView3_SelectedIndexChanged:
modalRecebimento.Visible = true;
E esse é o do modalRecebimento:
<div class="link_top"> <a href="#dialog_recebimento" name="modal_recebimento" class="linkmodal" runat="server" id="modalRecebimento">Receber Conta</a> </div>
Esse é um botão para abrir o modal, e ele não fica visível. Obrigado.
Respostas
-
Mariana,
Segue a solução:
Dentro do UpdatePanel crie um campo hidden para controlar qual guia está ativa:
<asp:HiddenField runat="server" ID="hdnTabAtiva" Value="0" />
No bloco de script atualize o valor do campo hidden quando as guias são clicadas e mantém a última guia ativa:
var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function () { // Mantém ativa as mesmas tabs do último postBack var tabAtivaIndex = $('#<%= hdnTabAtiva.ClientID %>').val(); $("#divTabs").tabs({ selected: tabAtivaIndex }); }); $(document).ready(function () { // Guia1 $('#Guia1').click(function () { $('#<%= hdnTabAtiva.ClientID %>').val("0"); }); // Guia2 $('#Guia2').click(function () { $('#<%= hdnTabAtiva.ClientID %>').val("1"); }); // Guia3 $('#Guia3').click(function () { $('#<%= hdnTabAtiva.ClientID %>').val("3"); }); // Guia4 $('#Guia4').click(function () { $('#<%= hdnTabAtiva.ClientID %>').val("4"); }); });
Espero que ajude,
Carlos Eduardo Ferreira
- Marcado como Resposta Mariana C. Costa segunda-feira, 26 de junho de 2017 13:47
Todas as Respostas
-
Boa tarde, Mariana C. Costa. Tudo bem?
Obrigado por usar o fórum MSDN.
Está aparecendo alguma mensagem de erro?atenciosamente,
Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Não, tanto que se eu não faço a regra pro modal ficar invisível quando clica abre normalmente, o problema está quando vou clicar no evento select do Grid, e o mesmo não torna a propriedade visível, creio q o problema seja o UpdatePanel, porém de toda forma que tento, não funciona.
-
-
-
Mariana,
Os outros eventos do grid estão funcionando? PageIndex? Editing?
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
-
Sim funciona normal, somente este elemento que não fica visível, o resto do código funciona, olha como ta:
protected void GridView3_SelectedIndexChanged(object sender, EventArgs e) { GridViewRow _linha = GridView3.SelectedRow; String _caminho = _linha.Cells[0].Text; txtid_recebimento.Text = _caminho; txtidReceita.Text = GridView3.SelectedRow.Cells[0].Text; GridRecebimento(); valor_recebimento(); txtValorDesconto.Text = "0"; modalRecebimento.Visible = true; UpdatePanel5.Update(); }
-
-
-
Agora tente incluir o updatepanel sem atributos e sem triggers.
<asp:UpdatePanel ID="UpdatePanel5" runat="server"> <ContentTemplate> <div class="financeiro"> <asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" TabIndex="10" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" OnPageIndexChanging="GridView3_PageIndexChanging" OnSelectedIndexChanged="GridView3_SelectedIndexChanged" OnRowEditing="GridView3_RowEditing" OnRowCreated="GridView3_RowCreated"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" SortExpression="id" /> <asp:BoundField DataField="vencimento" HeaderText="Vencimento" SortExpression="vencimento" DataFormatString="{0:d}" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"></asp:BoundField> <asp:BoundField DataField="observacao" HeaderText="Observação" SortExpression="observacao" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundField> <asp:BoundField DataField="valor_pago" HeaderText="Valor" SortExpression="valor_pago" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundField> <asp:BoundField DataField="valor" HeaderText=" Valor Pago" SortExpression="valor" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundField> <asp:CheckBoxField DataField="quitado" HeaderText="Quitado" SortExpression="quitado" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:CheckBoxField> <asp:CommandField ShowSelectButton="True" SelectText="<img src='images/icon/Misc-Edit-icon.png' title='Editar'/>" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" /> <asp:CommandField ShowDeleteButton="True" DeleteText="<img src='images/icon/Trash-can-icon.png' title='Excluir' />" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:CommandField> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> </div> </ContentTemplate> </asp:UpdatePanel>
Carlos Eduardo Ferreira
-
-
-
-
Mariana,
Segue a solução:
Dentro do UpdatePanel crie um campo hidden para controlar qual guia está ativa:
<asp:HiddenField runat="server" ID="hdnTabAtiva" Value="0" />
No bloco de script atualize o valor do campo hidden quando as guias são clicadas e mantém a última guia ativa:
var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function () { // Mantém ativa as mesmas tabs do último postBack var tabAtivaIndex = $('#<%= hdnTabAtiva.ClientID %>').val(); $("#divTabs").tabs({ selected: tabAtivaIndex }); }); $(document).ready(function () { // Guia1 $('#Guia1').click(function () { $('#<%= hdnTabAtiva.ClientID %>').val("0"); }); // Guia2 $('#Guia2').click(function () { $('#<%= hdnTabAtiva.ClientID %>').val("1"); }); // Guia3 $('#Guia3').click(function () { $('#<%= hdnTabAtiva.ClientID %>').val("3"); }); // Guia4 $('#Guia4').click(function () { $('#<%= hdnTabAtiva.ClientID %>').val("4"); }); });
Espero que ajude,
Carlos Eduardo Ferreira
- Marcado como Resposta Mariana C. Costa segunda-feira, 26 de junho de 2017 13:47
-