加载用户控件会动态丢失数据

时间:2010-04-22 13:19:30

标签: vb.net user-controls

我创建了一个用户控件。这个用户控件我在Telerik Panelbar控件内的页面上动态加载。我已经完成了所有必要的编码以保存视图状态,并在每次加载页面时加载此动态创建的用户控件。 在这个用户控件上我有一个asp面板。默认情况下,此面板不可见。当用户单击此用户控制面板上的按钮时,可见。在此用户控件的页面加载上,我填充此面板上的所有控件。 如果我不动态加载此用户控件但是当我动态加载此用户控件并且如果我在默认情况下使面板可见时,一切都正常工作,那么只会填充面板上的所有字段。但是,如果我默认设置为不可见,并且在按钮上单击“生成”面板可见,则不会填充任何文本框或组合框。 我在userControl的页面加载上填充组合框,但在回发之间,用户控制松散数据的所有组合框。 在父页面上,我正在保存视图状态 这是我在父页面上的代码,用于动态加载userControl(其上有面板) Dim ucPiggyBank As SubscriberSetupPages_UserControls_PiggyBank = CType(LoadControl(“〜/ SubscriberSetupPages / UserControls / PiggyBank.ascx”),SubscriberSetupPages_UserControls_PiggyBank)         用ucPiggyBank             .PiggyBankID = account.Id             .ID = account.Id.ToString             '在此处设置以下3个属性以避免数据库跳闸             .PiggyBankEligibleAccounts = piggyBankEligibleAccountCollection             .MemorizedNames =记忆名             .Period =期间         以。结束         radPanelNewChild.Controls.Add(ucPiggyBank)         radPanelNew.Items.Add(radPanelNewChild)         radPanelNew.Expanded = True '这是Telerik Panelbar控件父页面上的Panel项。 昏暗的radPanelPiggyBank作为RadPanelItem = DirectCast(pnlbarPiggyBank.FindItemByValue(“TestItem”),RadPanelItem)         使用radPanelPiggyBank             .Items.Add(radPanelNew)             .DataBind()         结束 '我正在做一切事情来保存父控制的viewstate 这是userControl页面加载的代码     如果不是IsPostBack那么

        If m_PiggyBankID <> Guid.Empty Then
            'Load data
            Call GetPiggyBankDetails()
        End If

我在用户控件上有一个编辑按钮,可以看到面板。它使面板可见,但没有数据。 你能告诉我发生了什么吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果发布了数据,您可以从Request.Form [control.UniqueID]获取数据,但如果动态添加控件,则不要使用viewstate可能性。