我有一个用户控件,它有一个方法,当点击aspx页面上的按钮时执行,我在方法中传递两个用户控件的ID,现在我想获取用户文本框的值控制,但不幸的是它没有识别我编码的文本框: -
//Method to copy values from one control into another
public void copyInfo(Control ctrl1, Control ctrl2) {
List<string> vals = new List<string>();
foreach (Control c in ctrl1.Controls)
{
if (c is TextBox)
{
if (string.IsNullOrEmpty(((TextBox)c).Text)) { }
else {
//values from textbox
vals.Add(((TextBox)c).Text);
}
}
.............
..........
......
我如何获得文本框控件和值。
答案 0 :(得分:0)
我会在你的UserControl上添加一个公共属性,例如:
public string SomeTextboxValue
{
get
{
return SomeTextBox.Text;
}
set
{
SomeTextBox.Text = value;
}
}
然后,您需要将控件转换为实际类型而不是通用Control
类:
SomeControl someControl1 = (SomeControl)ctrl1;
SomeControl someControl2 = (SomeControl)ctrl2;
someControl1.SomeTextboxValue = someControl2.SomeTextboxValue;
或者反过来取决于副本中的from和dest。
如果您的控件是动态创建的,并且您无法在回发时找到它,可能是因为您没有在回发时重新创建控件。在尝试理解如何使用和处理来自动态控件的数据时,我发现本系列文章非常有趣:
该链接指向第三部分,但其中重要部分涵盖了您的场景:
创建自定义客户端属性UI并加载客户端 数据库中的当前值
以编程方式将Web控件添加到ASP.NET页面时 必须将控件添加到每个页面的页面上 页面访问。这包括第一页访问和所有后续访问 回传。