在页面上,我只有文本框,按钮,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.相同的情况对于反向场景有效同样。
所以问题是点击按钮没有在第一次点击时更新号码 - 只为第二次点击工作。
为什么会这样?
答案 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
之前,您应该重新绑定网格。