updatepanel中的Radiobuttonlist都是动态创建的,在回发时不保留值

本文关键字:保留 Radiobuttonlist 中的 创建 动态 updatepanel | 更新日期: 2023-09-27 18:14:38

我使用下面的代码在我的页面(aspx)上动态创建控件,但是当异步回发触发单选按钮不保留它的选择并且方法uptheup不被调用。我猜这是与视图状态不返回值,但我认为,如果控制ID是相同的,它是在Page_Init在Page_Load中创建的值应该自动从视图状态设置??

我想要的是,如果有人选择No文本框变得可见。控件id是从数据库中设置的,并且每次加载时都是相同的,因为代码被使用了几次(我已经替换了下面的id以便于阅读)

从Page_Init

调用
RadioButtonList rbtnl = new RadioButtonList();
                        rbtnl.ID = "rbl_1";
                        rbtnl.Items.Add("Yes");
                        rbtnl.Items.Add("No");
                        rbtnl.AutoPostBack = true;
                        rbtnl.EnableViewState = true;
                        rbtnl.SelectedIndexChanged += new EventHandler(uptheup);
                        rbtnl.ClientIDMode = System.Web.UI.ClientIDMode.AutoID;
                        scriptmanager1.RegisterAsyncPostBackControl(rbtnl);
                        TextBox tbx = new TextBox();
                        tbx.ID = "tb-1";
                        tbx.CssClass = "form-control";
                        tbx.Visible = false;
                        UpdatePanel upx = new UpdatePanel();
                        upx.ID = "up-1";
                        upx.ContentTemplateContainer.Controls.Add(rbtnl);
                        upx.ContentTemplateContainer.Controls.Add(tbx);
                        upx.UpdateMode = UpdatePanelUpdateMode.Always;
                        upx.EnableViewState = true;
                        upx.ChildrenAsTriggers = true;

                        plcEvalBody.Controls.Add(upx);

updatepanel中的Radiobuttonlist都是动态创建的,在回发时不保留值

OK,所以代码很好,它工作得很好,问题是我假设ID不是问题-它们是-永远不要在控制ID中使用$。我用它来分隔ID的两个部分,它是无效的。