title: GridView Delete Row
body: <p>I'm trying to delete a row in a gridview (the data is not in the database yet), so it should be a simple delete row, if anybody can please point me in the right direction....
  This is what I have done:</p>
  
  <pre><code>     else if (e.CommandName == "DeletePart")
      {
          int index = Convert.ToInt32(e.CommandArgument); //#1 line
          GridView1.DeleteRow(index);  //#2 line
      }
  </code></pre>
  
  <p>The error that I am receiving is : "Input string was not in a correct format." (this happens on #1 line)...</p>
  
  <p>This is how the gridview looks like: (use a linkbutton to do the delete)</p>
  
  <pre><code>    &lt;asp:GridView ID="GridView1" runat="server"  AllowPaging="True" 
                                  EmptyDataText="No parts has been added to the model, please add a part."
                                  BorderColor="Black" BorderStyle="Solid"  BorderWidth="2px" 
                                  CellPadding="3" onrowcommand="GridView1_RowCommand" 
                              onrowediting="GridView1_RowEditing" onrowdeleting="GridView1_RowDeleting"&gt;
                                  &lt;Columns&gt;
                                  &lt;asp:TemplateField HeaderText=""&gt;
                                   &lt;ItemTemplate&gt;
                                     &lt;asp:LinkButton ID="EditButton" runat="server" CssClass="EditButton" CommandName="Edit" Text="Edit" /&gt;
                                   &lt;/ItemTemplate&gt;
                                   &lt;/asp:TemplateField&gt;
                                   &lt;asp:TemplateField HeaderText=""&gt;
                                   &lt;ItemTemplate&gt;
                                     &lt;asp:LinkButton ID="DeleteButton" runat="server" CssClass="DeleteButton" CommandName="DeletePart" CommandArgument='&lt;%# Container.DataItemIndex %&gt;' Text="Delete" /&gt;
                                   &lt;/ItemTemplate&gt;
                                   &lt;/asp:TemplateField&gt;
                                  &lt;/Columns&gt;
                              &lt;HeaderStyle BackColor="#FFFFCC"  BorderColor="Black" BorderStyle="Solid" 
                                  BorderWidth="2px" /&gt;
                          &lt;/asp:GridView&gt;
  </code></pre>
  
  <p>Class of how the gridview populated and binded:</p>
  
  <pre><code>     public int companyID = 0;
  public int methodID = 0;
  DataTable dt;
  #region SQLConnections
  
  string connectionString = ConfigurationManager.ConnectionStrings["SOSConnectionString"].ConnectionString;
  SqlConnection conn;
  #endregion
  
  protected void Page_Load(object sender, EventArgs e)
  {
      if (!Page.IsPostBack)
      {
          dt = new DataTable();
          MakeDataTable();
          EmptyDataString();
      }
      else
      {
          dt = (DataTable)ViewState["DataTable"];
      }
      ViewState["DataTable"] = dt; 
  
  }
  
  #region GridView
  
  private void EmptyDataString()
  {
      TemplateBuilder tmpEmptyDataTemplate = new TemplateBuilder();
      tmpEmptyDataTemplate.AppendLiteralString("No parts has been added to the model, please add a part.");
      GridView1.EmptyDataTemplate = tmpEmptyDataTemplate;
      GridView1.DataBind();
  }
  
  private void MakeDataTable()
  {
      dt.Columns.Add("Item");
      dt.Columns.Add("Quantity");
      dt.Columns.Add("Price P/Quantity");
  }
  
  private void AddToDataTable()
  {
      DataRow dr = dt.NewRow();
      dr["Item"] = txtPart.Text;
      dr["Quantity"] = numQuantity.Text;
      dr["Price P/Quantity"] = txtPricePQ.Text;
      dt.Rows.Add(dr);
  }
  
  private void BindGrid()
  {
      GridView1.DataSource = dt;
      GridView1.DataBind();
  }
  
  protected void btnAddPart_Click(object sender, EventArgs e)
  {
      AddToDataTable();
      BindGrid();
      ClearNewParts();
  }
  #endregion
  
      protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
  {
      if (e.CommandName == "Edit")
      { 
          for (int i = 0; i &lt; GridView1.Rows.Count; i++)
          {
              GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
              txtPart.Text = row.Cells[2].Text;
              numQuantity.Text = row.Cells[3].Text;
              txtPricePQ.Text = row.Cells[4].Text;
          }
      }
      else if (e.CommandName == "DeletePart")
      {
          //int iCount = GridView1.Rows.Count;
          //for (int i = 1; i &lt;= iCount; i++)
          //{
          //    GridView1.DeleteRow(i);
          //}
        //  int rowIndex = Convert.ToInt32(GridView1.SelectedRow);
  
          int index = Convert.ToInt32(e.CommandArgument);
          GridView1.DeleteRow(index);
  
          //int index = Convert.ToInt32(e.CommandArgument);
          //GridView1.DeleteRow(rowIndex);
      }
  
  
      GridView1.DataBind();
  }
  </code></pre>