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