标签文本在asp.net中首次尝试时不会更新。为什么?

时间:2016-11-22 10:26:24

标签: c# asp.net button gridview label

在页面上,我只有文本框,按钮,gridview和标签。

我将用户名写入文本框并单击按钮,因此它在db中搜索并填充gridview并将标签文本更新为" xx result found"所以xx是在db。中找到的结果的数量。

示例代码非常简短:

string userName = TextBox2.Text;
SqlDataSource1.SelectCommand = "Select * From SampleTable Where name = '"+userName+"'";
ResultLable.Text = GridView1.Rows.Count + " Result Found";
GridView1.Visible = true;
ResultLable.Visible = true;
例如

; db中有一个用户名John,但Mary不存在。当我搜索John时,计数为1(这是正确的),然后我搜索Mary并再次单击按钮仍然是数字为1(这是不正确的)但是当我再次单击按钮时它变为0.相同的情况对于反向场景有效同样。

所以问题是点击按钮没有在第一次点击时更新号码 - 只为第二次点击工作。

为什么会这样?

2 个答案:

答案 0 :(得分:1)

设置SelectCommand后,您需要调用

SqlDataSource1.DataBind();
GridView1.DataBind();

答案 1 :(得分:1)

问题是你正在查看GridView1.Rows.Count,当你点击网格没有重新绑定的按钮时,Rows.Count将来自网格的先前值。

ResultLable.Text = GridView1.Rows.Count + " Result Found";

GridView1.Rows.Count()中使用Button_Click之前,您应该重新绑定网格。