【问题标题】:Asp.net Label not updated after postbck. Need extra refreshpostbck 后未更新 Asp.net 标签。需要额外刷新
【发布时间】:2014-06-09 17:27:24
【问题描述】:

单击按钮后,我将记录插入数据库,然后在页面加载时检查用户今天是否参加并显示正确的标签。问题是它在回发后一直显示错误的标签,但如果我进行一次刷新,我会显示正确的标签。

 Protected Sub AttendBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles AttendBtn.Click
        Dim con As New SqlConnection
        Dim conString As String
        conString = ConfigurationManager.ConnectionStrings("attConnection").ConnectionString
        con = New SqlConnection(conString)

        con.Open()

        Dim cmd As New SqlCommand("INSERT INTO Attendance (UserID, Date, Attendance_Cycle, Comments)VALUES (@UserID, @Date, @Attendance_Cycle, @Comments)", con)

        cmd.Parameters.AddWithValue("@Date", DateTime.Now)
        cmd.Parameters.AddWithValue("@Attendance_Cycle", GlobalVarAndFunc.CurrentCycle(2))
        cmd.Parameters.AddWithValue("@Comments", "")
        cmd.Parameters.AddWithValue("@UserID", GlobalVarAndFunc.UserID)
        cmd.ExecuteNonQuery()
        con.Close()
 End Sub

在页面加载时

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If GlobalVarAndFunc.HasAttended Then
            attend_LB.Text = "You already attended today"
        Else
            attend_LB.Text = "Attend now"
        End If
 End Sub

GlobalVarAndFunc.HasAttended 函数检查用户今天是否按下了参与按钮

【问题讨论】:

  • 你在哪里设置 GlobalVarAndFunc.HasAttended 为真?
  • App_Code 文件夹中的一个类。我怀疑问题出在页面生命周期顺序上。
  • 在按钮单击事件中,您没有设置标签的代码。按钮点击事件将在Page_Load 事件之后触发。
  • Bharadwaj:据我了解页面加载 --> 按钮单击 --> AttendBtn_Click 将运行,然后导致回发 --> 新页面加载将运行
  • 我想做的是用户在回发后点击按钮后更改页面内容

标签: asp.net .net vb.net postback page-refresh


【解决方案1】:

请理解asp页面的流程。系统将在按钮单击事件之前执行您的页面加载。因此,在您的情况下,当时调用 page_load 的那一刻您将获得数据库中已经存在的值,因为系统尚未执行单击事件。当单击事件执行时,您的值将进入数据库(在此事件之前,您的数据库未更新)。所以在下一次刷新时你会得到正确的值。

解决方案:将 page_load 代码放在 btn_click 事件中,以一次性获取结果。

【讨论】:

  • 感谢大家的帮助:)
猜你喜欢
  • 1970-01-01
  • 2020-08-08
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
  • 2011-11-24
相关资源
最近更新 更多