如何使用response.redirect进行回发?

时间:2014-08-05 15:37:22

标签: asp.net vb.net

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then
            ' hdncurrpayperiod.Value = test1.ToString
            hdnPayperiod.Value = test1.ToString
            lblPayPeriodStartDt.Text = test1
        Else
            lblPayPeriodStartDt.Text = hdnPayperiod.Value
        End If

    End Sub

    Private Sub btnnext_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnnext.Click
        ' hdnPayPeriodStartDt.Value = ""

        Dim datenext As Date
        Dim datenextpayperiod As String

        datenext = DateTime.Parse(lblPayPeriodStartDt.Text)
        datenextpayperiod = datenext.Add(New TimeSpan(14, 0, 0, 0)).ToString("MM/dd/yyyy")
        hdnPayperiod.Value = datenextpayperiod
        lblPayPeriodStartDt.Text = hdnPayperiod.Value
        'hdnPayperiod.Value = lblPayPeriodStartDt.Text.ToString
        Response.Redirect("TimeSystem.aspx?PayPeriodStartDate=" + HttpUtility.UrlEncode(hdnPayperiod.Value), False)

    End Sub

这是一个用户控件,其中包含带有下一个和上一个按钮以及标签的日历。我在初始加载(而不是回发)时从用户控件属性获取初始日期,在下一个按钮单击时,它会添加14天并显示在标签上。一切都很好,直到我使用response.redirect,它不会回发并再次获取属性值。我怎么能避免这种情况。我必须在网址中添加14天的日期值,但这只发生一次,因为每次点击response.redirect时都会刷新属性值。如果我不清楚,请告诉我

1 个答案:

答案 0 :(得分:0)

在非IsPostBack块中的Page_Load中添加另一个' if'检查PayPeriodStartDate' PayPeriodStartDate'存在于查询字符串(Request.QueryString)中。如果是 - 使用该值设置隐藏字段和标签,如果它不使用' test1'代码示例中的值。