我已完成此操作并显示错误Index was out of range. Must be negative and non zero value.
在以下代码中
Dim index_flag as Integer = 0
GridView1.Rows(index_flag).Cells(1).Text = ds.Tables(0).Rows(index_flag).Item("curr_datetime").ToString
GridView1.Rows(index_flag).Cells(2).Text = ds.Tables(0).Rows(index_flag).Item("site_id").ToString
GridView1.Rows(index_flag).Cells(2).Text = ds.Tables(0).Rows(index_flag).Item("site_name").ToString
GridView1.Rows(index_flag).Cells(3).Text = ds.Tables(0).Rows(index_flag).Item("dc_volt").ToString
答案 0 :(得分:6)
我认为你应该使用数据表。 根据需要准备数据表,并将此数据表绑定到网格视图 这里是C#的例子,但你可以用VB.NET的语法做同样的事情
DataTable dt = new DataTable();
dt.Columns.Add("sr_no");
dt.Columns.Add("item_name");
dt.Columns.Add("item_id");
dt.Columns.Add("qty");
dt.Columns.Add("rate");
dt.Columns.Add("total");
var dr = dt.NewRow();
dr["sr_no"] = txtSr.Text;
dr["item_name"] = ddlItem.SelectedItem.Text;
dr["item_id"] = ddlItem.SelectedValue;
dr["qty"] = txtQty.Text;
dr["rate"] = txtRate.Text;
dr["total"] = int.Parse(txtQty.Text) * int.Parse(txtRate.Text);
dt.Rows.Add(dr);
答案 1 :(得分:2)
请试试这个,它会对你有什么帮助。
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
dt = new DataTable();
MakeDataTable();
}
else
{
dt = (DataTable)ViewState["DataTable"];
}
ViewState["DataTable"] = dt;
}
private void MakeDataTable()
{
dt.Columns.Add("Name");
dt.Columns.Add("Number");
}
protected void Button2_Click(object sender, EventArgs e)
{
AddToDataTable();
BindGrid();
}
private void AddToDataTable()
{
DataRow dr = dt.NewRow();
dr["Name"] = txtName.Text;
dr["Number"] = txtNumber.Text;
dt.Rows.Add(dr);
}
private void BindGrid()
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
答案 2 :(得分:0)
为什么要尝试将数据表中的每一行添加到GridView?请尽可能使用GridView.DataSource = DataTable和GridView。的DataBind()。这将完成将数据表中的数据添加到网格视图的工作。
答案 3 :(得分:0)
您缺少GridView1.Rows.Add()
Dim index_flag as Integer = 0
GridView.Rows.Add()
GridView1.Rows(index_flag).Cells(1).Text = ds.Tables(0).Rows(index_flag).Item("curr_datetime").ToString
GridView1.Rows(index_flag).Cells(2).Text = ds.Tables(0).Rows(index_flag).Item("site_id").ToString
GridView1.Rows(index_flag).Cells(2).Text = ds.Tables(0).Rows(index_flag).Item("site_name").ToString
GridView1.Rows(index_flag).Cells(3).Text = ds.Tables(0).Rows(index_flag).Item("dc_volt").ToString
UPDATE
对于Asp GridView,请检查此链接 我已查看过您的问题,您可以查看此链接http://www.codeproject.com/Articles/467788/Dynamically-adding-and-deleting-rows-from-ASP-NET
答案 4 :(得分:0)
通过手动将文本框中的值添加到gridview,以下方法很简单。试试这个
码
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataColumn dc = new DataColumn();
if (dt.Columns.Count == 0)
{
dt.Columns.Add("Title1", typeof(string));
dt.Columns.Add("Title2", typeof(string));
}
DataRow NewRow = dt.NewRow();
NewRow[0] = TextBox1.Text;
NewRow[1] = TextBox2.Text;
dt.Rows.Add(NewRow);
GridView1.DataSource = dt;
GridView1.DataBind();
}