2016-08-30 20 views
0

我有一个GridViewRow []具有一些数据,这些数据是针对从先前的页面中选择实施例4点的行(图1)恢复值和传递到GridViewRow

enter image description here

复选框后标记,用户必须发送到确认页面,在这个页面中,我需要生成另一个gridviewRow,只有4 selected.i'm使用会话将值传递到另一个页面,但我不能让它工作,我在foreach中做错了。这是代码。

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 - 注释的部分是事情,我alrady试过,但没有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(); 
     // } 

     } 

回答

0

我想通了一个办法,这就是我所做的。

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(); 
     }