我有一个显示学生的网格视图,每行都有一个文本框,可以在其中输入标记。我试图拉动目前的马克'数据库表中的值并将其放入该特定学生的文本框中,但是每个学生都会重复数据表中的最后一个值。
如何获取数据表值以单独填充gridview的每一行?
TextBox marks = (TextBox)e.Row.FindControl("MarkTextBox");
SqlDataAdapter da = new SqlDataAdapter(command);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
int Mark = (int)dr["Mark"];
marks.Text = Mark.ToString();
}
}
答案 0 :(得分:0)
如果这是RowDataBound事件,则代码将运行每个行。
因此,对于第一个 gridview 行,您将循环整个表并将文本框值设置为当前表行。意思是,表中的最后一个值将始终是每个gridview行的值 。
所以在RowDataBound事件中你需要
在下一个RowDataBound上(它们都一次运行),您的代码将获得第4行,并且您将文本框设置为表格第4行中的值。
答案 1 :(得分:0)
让它工作,谢谢你的帮助@wazz
TextBox marks =(TextBox)e.Row.FindControl(" MarkTextBox");
for (int i = 0; i < gradeAlways.Rows.Count +1; i++)
{
SqlDataAdapter da = new SqlDataAdapter(command);
DataTable dt = new DataTable();
da.Fill(dt);
var Mark = dt.Rows[i]["Mark"];
marks.Text = Mark.ToString();
}
我必须把gradeAlways.Rows.Count +1