使用禁用的ViewState填充中继器(asp.net/vb.net)

本文关键字:net asp vb 中继器 ViewState 填充 | 更新日期: 2023-09-27 18:26:30

我有一些代码如下:

Protected Sub Page_Load(....
 If Not IsPostBack Then 
   Session("isloaded") = True
   PopulateData()
 End If
 If Session("isloaded") = True Then Session("isloaded") = False Else PopulateData()
End Sub
Private Sub btnEditCancel_Click(....
 Session("isloaded") = False
End Sub
Private Sub btnEditSave_Click(...
 Session("isloaded") = True
 PopulateData()
End Sub

因为,当我单击btnEditSave时,会填充Repeater。但是,当我单击btnEditCancel时,不会填充Repeater。CCD_ 5是用于使用CCD_ 7来填充CCD_。顺便提一下,asp:Repeater中的EnableViewState被禁用。

如何解决这个问题?

是否可能Page_Load先点火,然后Session("isloaded")被设置为False

很抱歉我的英语不好,我希望大家能理解这个问题。

使用禁用的ViewState填充中继器(asp.net/vb.net)

首先在btnEditSave_Click事件中的代码中生成Session("isloaded") = True,然后如果您单击Page load中的btnEditCancel按钮,因为它是Postback它将只执行

 If Session("isloaded") = True Then Session("isloaded") = False Else PopulateData()

因为它将只执行IF部分,就像您在中制作Session("isloaded") = True一样btnEditSave_Click事件它不会在ELSE部分中调用PopulateData()

更改btnEditCancel_Click事件,如

Private Sub btnEditCancel_Click(....
 If Session("isloaded") = False Then PopulateData()
End Sub