Usuário com melhor resposta
Pegar o click do Checkbox em GridView

Pergunta
-
Tenho um checkbox em um gridview, que o usuário vai selecionar, as que forem do seu critério, e eu preciso que ao selecionar o checkbox, ele vá somando o valor e jogue em um checkbox, aqui está o meu gridview:
<asp:GridView ID="GridContas" runat="server" Style="overflow-y: auto" AllowPaging="True" AutoGenerateColumns="False" CellPadding="4" CssClass="table table-responsive table-hover table-striped" GridLines="None" DataKeyNames="id" PageSize="1000000" OnDataBound="GridContas_DataBound" OnPageIndexChanging="GridContas_PageIndexChanging" OnRowCommand="GridContas_RowCommand" OnRowDataBound="GridContas_RowDataBound" OnRowDeleting="GridContas_RowDeleting" OnSelectedIndexChanged="GridContas_SelectedIndexChanged"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="CheckBox1" AutoPostBack="true" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="id" HeaderText="ID" SortExpression="id" /> <asp:BoundField DataField="observacao" HeaderText="Observação" SortExpression="id" HeaderStyle-Font-Bold="true"> <HeaderStyle Font-Bold="True"></HeaderStyle> </asp:BoundField> <asp:BoundField DataField="Vencimento" HeaderText="Vencimento" SortExpression="vencimento" DataFormatString="{0:d}" HeaderStyle-Font-Bold="true"> <HeaderStyle Font-Bold="True"></HeaderStyle> </asp:BoundField> <asp:BoundField DataField="valor_pago" HeaderText="Valor" SortExpression="valor_pago" HeaderStyle-Font-Bold="true"> <HeaderStyle Font-Bold="True"></HeaderStyle> </asp:BoundField> </Columns> </asp:GridView>
E aqui o código que cheguei, para jogar no textbox.
if (e.Row.RowType == DataControlRowType.DataRow) { foreach(GridViewRow rows in GridContas.Rows) { CheckBox chkSelect = (CheckBox) e.Row.FindControl("CheckBox1"); Label lblValor = (Label) e.Row.FindControl("valor_pago"); if (chkSelect.Checked) { ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Teste!');", true); txtValor.Text = Convert.ToDecimal(lblValor.Text) + txtValor.Text; } } }
Eu coloquei ele no evento RowDataBound do GridView, porém não funcionou. Preciso que ao clicar, ele já vá somando automático, já vi vários exemplos, mas nenhum com soma em tempo real.
Tentei colocar até um alert, pra ver se era o código que estava errado, porém nem assim ocorreu o alert. Como posso fazer para clicar já ir somando ?
- Movido welington jrModerator terça-feira, 1 de maio de 2018 00:06 forum mais especifico
Respostas
-
Mariana C. Costa,
Por favor, veja:
=================================================
Allow only one check box checked in gridview
ASP.NET
https://www.codeproject.com/Questions/202279/Allow-only-one-check-box-checked-in-gridview=================================================
How to check a checkbox on gridview row click ?
https://forums.asp.net/t/1817675.aspx?How+to+check+a+checkbox+on+gridview+row+click+MARKUP
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript" src="../Scripts/jquery-1.7.2.js"></script> <script type="text/javascript"> $(function () { $('tr.dataRow').on('click', function () { var checked = $(this).find('input[id*=checkBox]').prop('checked'); $(this).find('input[id*=checkBox]').prop('checked',!checked); }); }); </script> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCreated="GridView1_RowCreated"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="checkBox" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="ID" HeaderText="ID" /> <asp:BoundField DataField="Name" HeaderText="Name" /> </Columns> </asp:GridView> </div> </form> </body> </html>
CODE BEHIND
public partial class TestForm : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { var data = new List<TestData>() { new TestData { ID = 1, Name = "Test1"}, new TestData { ID = 2, Name = "Test2"} }; GridView1.DataSource = data; GridView1.DataBind(); } } protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.DataRow) { e.Row.CssClass = "dataRow"; } } } public class TestData { public int ID { get; set; } public string Name { get; set; } }
=================================================
Veja também:
=================================================
ASP.NET - Excluindo registros no GridView com Checkbox
Vamos construir neste artigo uma interface para excluir registros de forma a apresentar ao usuário em um GridView a relação dos registros para exclusão permitindo que seja feita uma seleção dos registros a serem excluídos através da utilização do controle CheckBox.
http://www.macoratti.net/08/03/aspn_erg.htm=================================================
Utilizando o CheckBox no GridView
http://devbrasil.net/profiles/blogs/utilizando-o-checkbox-no=================================================[]'s,
Fabio I.- Editado Fabio I terça-feira, 1 de maio de 2018 13:53
- Marcado como Resposta Mariana C. Costa quarta-feira, 2 de maio de 2018 11:50