【问题标题】:Label text is not updated in first try in asp.net. Why?第一次尝试在 asp.net 中未更新标签文本。为什么?
【发布时间】:2016-11-22 10:26:23
【问题描述】:

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

我将用户名写入文本框并单击按钮,因此它在 db 中搜索并填充 gridview 并将标签文本更新为“找到 xx 结果”,因此 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。相同的情况适用于反向场景也是。

所以问题是点击按钮没有更新第一次点击中的数字 - 只适用于第二次点击。

为什么会这样?

【问题讨论】:

    标签: c# asp.net button gridview label


    【解决方案1】:

    设置 SelectCommand 后需要调用

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

    【讨论】:

      【解决方案2】:

      问题是您正在查看GridView1.Rows.Count,当您单击按钮时,网格不会重新绑定,因此Rows.Count 将来自网格的先前值。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-20
        • 2021-02-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多