我显然不清楚网站是如何运作的。
(Using vb.net, visual studio, web forms)
但是这里有:
在每次postback-page_load之后,是否总是会发生另一个page_load(这不是回发)?或者这是我正在改编的网站的奇怪之处?
为什么在page_load中checkbox.checked-property始终为false,尽管在页面加载时会检查它?
实际问题:我有一个带有gridview的页面,绑定到数据集。在page_load上,我根据特定条件动态添加一些额外的列。 (我只在page_load不是回发时添加它们。)
现在,我添加了asp:checkbox
。如果选中它,我希望页面重新加载并添加列,但方式略有不同(这样它是可编辑的)。我尝试检查page_load上的checkbox.checked-property,但这是会发生的事情:首先,我得到一个postback-page_load,其中checked-property为true(正如我所料)。但是,在此之后我立即得到normal
page_load,其中check-property为false-尽管在加载页面后,选中了复选框。
由于我在normal
page_load上添加了额外的列,然后checked
始终为false,因此始终以常规方式添加列...
也许我不应该在normal
page_load中添加列,而是在回发中或两者中添加列。但事实上,添加列是有效的,在这种情况下,如果我在回发中添加它们也不会产生任何影响,因为它总是会跟着normal
page_load checked-property是false。
我错过了什么?
答案 0 :(得分:0)
确保EnableViewState
属性是否设置为TRUE,默认情况下。
服务器控件的状态在ViewState中维护,因此仅当此属性设置为FALSE时才会出现问题。
你应该使用if(NOT IsPostBack)进行数据绑定
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
If Not IsPostBack Then
GetAllContentAnnouncement()
End If
Catch ex As Exception
End Try