0

I have a GridViewRow[] that has some data,this data is for example 4 rows that was selected from previous page (picture 1)

enter image description here

After the checkbox marked,the user has to send to a confirmation page,in this page i need to generate another gridviewRow that only has the 4 selected.i'm using a session to pass the values to another page,but i cant make it work,i doing wrong in the foreach.This is the code.

ASCX

<asp:GridView runat="server" class="Tabelas" Width="698px" ID="grdSimulacao"  AutoGenerateColumns="False">
                                    <HeaderStyle CssClass="TabelasHeader branca-10NN"></HeaderStyle>
                                    <RowStyle CssClass="TabelasBody grid"></RowStyle>
                                    <AlternatingRowStyle CssClass="TabelasBodyAlt grid" BackColor="#EEEEEE"></AlternatingRowStyle>
                                    <Columns>
                                        <asp:BoundField HeaderText="NF" DataField="NUMNOTAFISCAL">
                                            <ItemStyle HorizontalAlign="Center" />
                                        </asp:BoundField>
                                        <asp:BoundField HeaderText="Emissão" DataField="DTEMISSAO" DataFormatString="{0:dd/MM/yyyy}">
                                            <ItemStyle HorizontalAlign="Center" />
                                        </asp:BoundField>
                                        <asp:BoundField HeaderText="Vencimento" DataField="DTVENCIMENTO" DataFormatString="{0:dd/MM/yyyy}">
                                            <ItemStyle HorizontalAlign="Center" />
                                        </asp:BoundField>
                                        <asp:BoundField HeaderText="Dias" DataField="DIASANTEC">
                                            <ItemStyle HorizontalAlign="Center" />
                                        </asp:BoundField>
                                        <asp:BoundField HeaderText="Valor(R$)" DataField="VALTOTAL" DataFormatString="{0:#,0.00}">
                                            <ItemStyle HorizontalAlign="Center" />
                                        </asp:BoundField>
                                        <asp:BoundField HeaderText="Encargos(R$)" DataField="VLENCARGOS" DataFormatString="{0:#,0.00}">
                                            <ItemStyle HorizontalAlign="Center" />
                                        </asp:BoundField>
                                        <asp:BoundField HeaderText="Vlr. Final(R$)" DataField="VLFINAL" DataFormatString="{0:#,0.00}">
                                            <ItemStyle HorizontalAlign="Center" />
                                        </asp:BoundField>
                                    </Columns>
                                </asp:GridView>

CS - The commented part is things i alrady tried but without sucess.

 public void Carrega_valores()
        {

            string NUMNOTAFISCAL = "";
            string PRAZOPGTO = "";
            GridViewRow[] valoresNovos = new GridViewRow[300];
            valoresNovos = (GridViewRow[])Session["vlColunas"];
            foreach (GridViewRow grdCount in valoresNovos)
            {
                DataTable dt = new DataTable();
                if (grdCount != null)
                {
                    //NUMNOTAFISCAL = grdCount.Cells[1].Text;
                    //PRAZOPGTO = grdCount.Cells[4].Text;
                }

                //GridViewRow row = (GridViewRow)grdCount.Rows[0].Clone();
            }
            //DataRow NewRow = dt.NewRow();
            //NewRow[1] = grdCount.Cells[1].Text;
            //dt.Rows.Add(NewRow);
            //grdSimulacao.DataSource = dt;
            //grdSimulacao.DataBind();
      //  }
                //grdSimulacao.Controls[0].Controls.Add(valoresNovos[0]);
                // grdSimulacao.DataSource = valoresNovos;
                // grdSimulacao.DataBind();
         //   }

        }
4

1 回答 1

0

I figured out a way,this is what i did.

 public void Carrega_valores()
        {
            GridViewRow[] valoresNovos = new GridViewRow[300];
            valoresNovos = (GridViewRow[])Session["vlColunas"];
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("NUMNOTAFISCAL"));
            dt.Columns.Add(new DataColumn("DTEMISSAO"));
             dt.Columns.Add(new DataColumn("DTVENCIMENTO"));
             dt.Columns.Add(new DataColumn("DIASANTEC"));
            dt.Columns.Add(new DataColumn("VALTOTAL"));
             dt.Columns.Add(new DataColumn("VLENCARGOS"));
            dt.Columns.Add(new DataColumn("VLFINAL"));
            foreach (GridViewRow grdCount in valoresNovos)
            {
                //dt = (DataTable)Session["vlColunas"];
                if (grdCount != null)
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = grdCount.Cells[1].Text;
                    dr[1] = grdCount.Cells[2].Text;
                    dr[2] = grdCount.Cells[3].Text;
                    dr[3] = grdCount.Cells[7].Text;
                    dr[4] = grdCount.Cells[5].Text;
                    dr[5] = grdCount.Cells[8].Text;
                    dr[6] = grdCount.Cells[5].Text;
                   //dr 7 é valor de 5 menos 8
                    dt.Rows.Add(dr);
                }
            }
            grdSimulacao.DataSource = dt;
            grdSimulacao.DataBind();
        }
于 2016-08-30T13:26:47.837 回答