Zugriff auf die textbox mit dem Wert aus gridview

Habe ich eine dynamische gridview ...und es hat vier Spalten..was ich will ist, Zugriff auf das textbox-Wert in der gridview aus der letzten Spalte "Betrag" und zeigt deren Summe den Wert in ein label.Unten ist der code, den ich ausprobiert habe. kann jemand lassen Sie mich wissen, wie dies zu tun?

ASP.NET

<asp:gridview ID="Gridview2" runat="server" ShowFooter="true" CssClass="vutblrow" 
                                                                TabIndex="3" HeaderStyle-CssClass="vutblhdr"
                                                                CellPadding="4" ForeColor="#333333" GridLines="None"  Width="1%"  
                                                                PagerStyle-Mode="NumericPages" 


            AutoGenerateColumns="false" onrowcreated="Gridview2_RowCreated" Height="16px">
              <PagerStyle CssClass="pgr"  Height="25px" BorderStyle="Solid" />
            <Columns>
            <asp:BoundField DataField="RowNumber" HeaderText="Serial Number" />
            <asp:TemplateField HeaderText="From Place">
                <ItemTemplate>

                    <asp:TextBox ID="Textfrom" runat="server" CssClass="txtBoxNormalmedium"></asp:TextBox>
                </ItemTemplate>

            </asp:TemplateField>

             <asp:TemplateField HeaderText="To Place">
                <ItemTemplate>
                    <asp:TextBox ID="Textto" runat="server" CssClass="txtBoxNormalmedium"></asp:TextBox>
                </ItemTemplate>

            </asp:TemplateField>

             <asp:TemplateField HeaderText="Distance Travelled (kms)">
                <ItemTemplate>
                    <asp:TextBox ID="TextBoxdist" runat="server" CssClass="txtBoxNormalmedium"></asp:TextBox>
                </ItemTemplate>

            </asp:TemplateField>




           <asp:TemplateField HeaderText="Amount Paid (per km)">
                <ItemTemplate>
                    <asp:TextBox ID="TextBoxamt" runat="server" CssClass="txtBoxNormalmedium"></asp:TextBox>
                </ItemTemplate>

                <FooterStyle HorizontalAlign="Right" />
                <FooterTemplate>
                 <asp:Button ID="ButtonAdd1" runat="server" Text="Add New Row"
                         CssClass="btnNormalAdd" OnClick="add" />
                </FooterTemplate>
            </asp:TemplateField>
                 <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton2" runat="server" 
                        CssClass="lnkbut" OnClick="LinkButton2_Click">Remove</asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
            </Columns>
        </asp:gridview>


                                                         <asp:Label ID="lblTotal" runat="server" Text="Label"></asp:Label>

C# - code:

namespace Test.Test
{
   public partial class WebForm6 : System.Web.UI.Page
   {
      protected void Page_Load(object sender, EventArgs e)
      {
         if (!IsPostBack)
         {
            SetInitialRow1();
         }
      }

      private void AddNewRowToGrid1()
      {
         int rowIndex = 0;

         if (ViewState["CurrentTable"] != null)
         {
            DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
            DataRow drCurrentRow = null;
            if (dtCurrentTable.Rows.Count > 0)
            {
               for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
               {
                  //extract the TextBox values
                  TextBox box1 = (TextBox)Gridview2.Rows[rowIndex].Cells[1].FindControl("Textfrom");
                  TextBox box2 = (TextBox)Gridview2.Rows[rowIndex].Cells[2].FindControl("Textto");
                  TextBox box3 = (TextBox)Gridview2.Rows[rowIndex].Cells[3].FindControl("TextBoxdist");
                  TextBox box4 = (TextBox)Gridview2.Rows[rowIndex].Cells[3].FindControl("TextBoxamt");

                  drCurrentRow = dtCurrentTable.NewRow();
                  drCurrentRow["RowNumber"] = i + 1;

                  dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text;
                  dtCurrentTable.Rows[i - 1]["Column2"] = box2.Text;
                  dtCurrentTable.Rows[i - 1]["Column3"] = box3.Text;
                  dtCurrentTable.Rows[i - 1]["Column4"] = box4.Text;

                  rowIndex++;
               }
                  dtCurrentTable.Rows.Add(drCurrentRow);
                  ViewState["CurrentTable"] = dtCurrentTable;
                  Gridview2.DataSource = dtCurrentTable;
                  Gridview2.DataBind();
           }
        }
        else
        {
           Response.Write("ViewState is null");
        }
        //Set Previous Data on Postbacks
        SetPreviousData1();
   }

   private void SetPreviousData1()
   {
      int rowIndex = 0;
      if (ViewState["CurrentTable"] != null)
      {
         DataTable dt = (DataTable)ViewState["CurrentTable"];
         if (dt.Rows.Count > 0)
         {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
               TextBox box1 = (TextBox)Gridview2.Rows[rowIndex].Cells[1].FindControl("Textfrom");
               TextBox box2 = (TextBox)Gridview2.Rows[rowIndex].Cells[2].FindControl("Textto");
               TextBox box3 = (TextBox)Gridview2.Rows[rowIndex].Cells[3].FindControl("TextBoxdist");
               TextBox box4 = (TextBox)Gridview2.Rows[rowIndex].Cells[3].FindControl("TextBoxamt");

               box1.Text = dt.Rows[i]["Column1"].ToString();
               box2.Text = dt.Rows[i]["Column2"].ToString();
               box3.Text = dt.Rows[i]["Column3"].ToString();
               box4.Text = dt.Rows[i]["Column4"].ToString();

               rowIndex++;
             }
          }
      }
   }

   protected void add(object sender, EventArgs e)
   {
      AddNewRowToGrid1();
   }

   protected void Gridview2_RowCreated(object sender, GridViewRowEventArgs e)
   {
      if (e.Row.RowType == DataControlRowType.DataRow)
      {
         DataTable dt = (DataTable)ViewState["CurrentTable"];
         LinkButton lb = (LinkButton)e.Row.FindControl("LinkButton1");
         if (lb != null)
         {
            if (dt.Rows.Count > 1)
            {
               if (e.Row.RowIndex == dt.Rows.Count - 1)
               {
                  lb.Visible = false;
               }
            }
            else
            {
               lb.Visible = false;
            }
         }
      }
   }

   protected void LinkButton2_Click(object sender, EventArgs e)
   {
      LinkButton lb = (LinkButton)sender;
      GridViewRow gvRow = (GridViewRow)lb.NamingContainer;
      int rowID = gvRow.RowIndex + 1;
      if (ViewState["CurrentTable"] != null)
      {
         DataTable dt = (DataTable)ViewState["CurrentTable"];
         if (dt.Rows.Count > 1)
         {
            if (gvRow.RowIndex < dt.Rows.Count - 1)
            {
               //Remove the Selected Row data
               dt.Rows.Remove(dt.Rows[rowID]);
            }
         }
         //Store the current data in ViewState for future reference
         ViewState["CurrentTable"] = dt;
         //Re bind the GridView for the updated data
         Gridview2.DataSource = dt;
         Gridview2.DataBind();
      }
      //Set Previous Data on Postbacks
     SetPreviousData1();
   }  

   private void SetInitialRow1()
   {
      DataTable dt = new DataTable();
      DataRow dr = null;
      dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
      dt.Columns.Add(new DataColumn("Column1", typeof(string)));
      dt.Columns.Add(new DataColumn("Column2", typeof(string)));
      dt.Columns.Add(new DataColumn("Column3", typeof(string)));
      dt.Columns.Add(new DataColumn("Column4", typeof(string)));

      dr = dt.NewRow();
      dr["RowNumber"] = 1;
      dr["Column1"] = string.Empty;
      dr["Column2"] = string.Empty;
      dr["Column3"] = string.Empty;
      dr["Column4"] = string.Empty;

      dt.Rows.Add(dr);
      //dr = dt.NewRow();

      //Store the DataTable in ViewState
      ViewState["CurrentTable"] = dt;

      Gridview2.DataSource = dt;
      Gridview2.DataBind();
   }

    }
}
Ihr label ist definiert nach/unter deinem GridView. Sind Sie versuchen, Summe aller Werte, oder einfach nur Anzeige der Gesamt-Betrag für jede Zeile?
Hallo,geben Sie Ihr problem eindeutig.es gibt keine Spalte mit der Bezeichnung Betrag in der gridview.Wenn Sie wollen, um zu zeigen, Summe von Spalte Werte von gridview. oder wollen einfach nur, um den Zugriff auf die textbox in jedem Fall.
ja, ich möchte die Anzeige der Summe aller Werte aus den gezahlten Betrag..Spalte
Warum ist Ihr Betrag textbox kopiert werden?
Es tut mir Leid, war ein versehen...ich habe die Frage bearbeitet

InformationsquelleAutor user2605927 | 2013-10-29

Schreibe einen Kommentar