Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa galera,
estou com um problema.
Estou fazendo um gridview pra um cadastro de produtos, dentro do gridview tem um checkbox, quando eu clicar no botao "enviar" eu quero pegar o codigo dos produtos que foram checados. até aí tá beleza, funciona, contanto que esteja aparecendo o campo CODPRODUTO no gridview.
o problema é que nao quero que apareça CODPRODUTO no gridview, mas mesmo assim quero pegar o codigo. Alguma idéia?
aspx
<asp:GridView ID="gridProduto" CssClass="grid" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="codProd" DataSourceID="ObjectDataSource1" PageSize="4"> <Columns> <asp:BoundField DataField="codProd" HeaderText="codProd" ReadOnly="True" SortExpression="codProd" /> <asp:BoundField DataField="nomeProduto" HeaderText="Nome" SortExpression="nomeProduto" /> <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="chkProdAssociados" runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> <EmptyDataTemplate> Nenhum produto cadastrado. </EmptyDataTemplate> <PagerStyle CssClass="pager" /> </asp:GridView>
aspx.cs
protected void btnRemover_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(" Itens Selecionados "); foreach (GridViewRow row in gridProduto.Rows) { CheckBox chkAssociado = (CheckBox)row.FindControl("chkProdAssociados"); if ((chkAssociado != null) && (chkAssociado.Checked)) { sb.AppendLine(); sb.Append(row.Cells[0].Text); } } TextBox1.Text = ""; TextBox1.Text = sb.ToString(); }}
desde já, obrigado.
Ae pessoal,
eu consegui fazer o que queria..
eu troquei essa linha:
sb.Append(row.Cells[0].Text);
por essa:
sb.Append(Convert.ToInt32(gridProduto.DataKeys[row.RowIndex].Value));
valeu!