我只是试着按学校的名字搜索结果.但是网格视图没有显示任何东西
本文关键字:视图 网格 显示 任何东 搜索结果 学校 | 更新日期: 2023-09-27 18:12:10
这是我的代码…我只是试着按学校的名字搜索结果。但是网格视图没有显示任何东西。我的代码是
public void gridfill()
{
markSp spMark = new markSp();
DataTable dtbl = new DataTable();
dtbl = spMark.markViewAll();
gvResult.DataSource = dtbl;
dtbl = spMark.markViewBySchool(txtSchoolName.Text);
gvResult.DataSource = dtbl;
}
protected void Button1_Click(object sender, EventArgs e)
{
gridfill();
}
public DataTable markViewAll()
{
DataTable dtbl = new DataTable();
SqlDataAdapter sqlda = new SqlDataAdapter("markViewAll", sqlcon);
sqlda.SelectCommand.CommandType = CommandType.StoredProcedure;
sqlda.Fill(dtbl);
return dtbl;
}
public DataTable markViewBySchool(string viewBySchool)
{
DataTable dtbClass = new DataTable();
SqlDataAdapter sqlda = new SqlDataAdapter("markViewBySchool",sqlcon);
sqlda.SelectCommand.CommandType = CommandType.StoredProcedure;
sqlda.SelectCommand.Parameters.Add("@schoolName", SqlDbType.VarChar).Value = viewBySchool;
sqlda.Fill(dtbClass);
return dtbClass;
}
更改如下,代码中几乎没有问题,为什么两次绑定到同一个gridview?即使您绑定了两次数据,它也只显示上次设置的内容。我删除了几行代码,你也忘了调用gvResult.DataBind()
public void gridfill()
{
markSp spMark = new markSp();
gvResult.DataSource = spMark.markViewBySchool(txtSchoolName.Text);
gvResult.DataBind();
}
public void gridfill()
{
markSp spMark = new markSp();
DataTable dtbl = new DataTable();
dtbl = spMark.markViewAll();
dtbl = spMark.markViewBySchool(txtSchoolName.Text);
gvResult.DataSource = dtbl;
gvResult.Databind(); // You forgot DataBind()
}
既然你已经用ASP标记。Net,您需要调用DataBind
gvResult.DataBind();
所以你的方法是:
public void gridfill()
{
markSp spMark = new markSp();
DataTable dtbl = new DataTable();
dtbl = spMark.markViewAll(); //you are not using this anywhere
gvResult.DataSource = dtbl; // so you can get rid of these two lines
dtbl = spMark.markViewBySchool(txtSchoolName.Text);
gvResult.DataSource = dtbl;
gvResult.DataBind(); // This is missing
}
你应该看到:. NET数据绑定概述