【发布时间】:2011-07-06 08:03:32
【问题描述】:
当 IsPostBack 参数为 true 时,如何使用在页面加载时以编程方式创建的 asp.net 控件获取属性(例如 Text)?
架构:
- 创建控件(例如
TextBox box = new TextBox(); box.ID = "BoxID") - 页面中的显示控件(例如
SomeControlInPageID.Controls.Add(box)) - 用户在页面中看到此文本框(id 为
"BoxID",但我们无法获取使用BoxID.Text的文本属性,因为它是通过编程方式创建的!)并在其中放入一些文本 - 用户单击页面中的按钮 (asp:Button) 并开始页面重新加载过程
- 启动Page_Load方法&IsPostBack参数取真值
-
我尝试使用此代码在 Page_Load 方法中获取
Text属性,但它不起作用...:void Page_Load() { if (Page.IsPostBack) { TextBox box = SomeControlInPageID.FindControl("BoxID") as TextBox; string result = box.Text; } else { // creating controls programatically and display them in page ... } }
此代码中的box.Text 总是取空值。
【问题讨论】:
-
在这种情况下,您将创建文本框控件。可能这应该是页面的 Init 事件。您需要在回发期间访问它们之前重新创建控件
-
@Roman 遇到这个问题了吗?
标签: asp.net text get properties