将texbox值添加到asp.net

时间:2017-03-17 17:23:56

标签: asp.net linq

int Row=0;
Row = PurchaseGridView.Rows.Count;
PurchaseGridView.Rows[Row].Cells[0].Text = ProductNameDropDown.SelectedValue.ToString();
PurchaseGridView.Rows[Row].Cells[1].Text = ProductNameDropDown.SelectedIndex.ToString();
PurchaseGridView.Rows[Row].Cells[2].Text = ProductPriceTxtBox.Text;
PurchaseGridView.Rows[Row].Cells[3].Text = QuantityTxtBox.Text;
PurchaseGridView.Rows[Row].Cells[4].Text = NetPriceTxtBox.Text;

我正在如上所述在gridview中添加文本框的值,但它会出错。

错误:索引超出范围。必须是非负数且小于集合的大小。 参数名称:index

1 个答案:

答案 0 :(得分:0)

您的代码中存在一些基本错误:

  1. 您正在使用Count指向一个不存在的新索引,从而使索引超出范围。
  2. 您无法直接向asp.net gridview添加行。你必须通过数据绑定来完成它。这是一个例子:

    DataTable dt = new DataTable();
    DataColumn dc = new DataColumn("ProductNameSelectedValue", typeof(string));
    DataColumn dc = new DataColumn("ProductNameSelectedIndex", typeof(int));
    ..
    Rest of you columns
    ..
    
    DataRow dr = dt.NewRow();
    dr["ProductNameSelectedValue"] = ProductNameDropDown.SelectedValue.ToString();
    dr["ProductNameSelectedIndex"] = ProductNameDropDown.SelectedIndex;
    ..
    Assign the rest of the columns
    ..
    
    dt.Rows.Add(dr);
    
    gv.DataSource = dt;
    gv.DataBind();