在page_load中Checkbox.checked为false

时间:2014-01-30 08:49:38

标签: asp.net vb.net visual-studio webforms

我显然不清楚网站是如何运作的。

(Using vb.net, visual studio, web forms) 但是这里有:

  1. 在每次postback-page_load之后,是否总是会发生另一个page_load(这不是回发)?或者这是我正在改编的网站的奇怪之处?

  2. 为什么在page_load中checkbox.checked-property始终为false,尽管在页面加载时会检查它?

  3. 实际问题:我有一个带有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。

    我错过了什么?

1 个答案:

答案 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