Asp.net从aspx页访问用户控件的控件
我有一个用户控件,它有一个方法,当点击aspx页面上的按钮时执行,我在方法中传递用户控件的两个ID,现在我想获得用户控件中文本框的值,但不幸的是,它无法识别我编码的文本框:-Asp.net从aspx页访问用户控件的控件,asp.net,user-controls,Asp.net,User Controls,我有一个用户控件,它有一个方法,当点击aspx页面上的按钮时执行,我在方法中传递用户控件的两个ID,现在我想获得用户控件中文本框的值,但不幸的是,它无法识别我编码的文本框:- //Method to copy values from one control into another public void copyInfo(Control ctrl1, Control ctrl2) { List<string> vals = new Li
//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);
}
}
.............
..........
......
//将值从一个控件复制到另一个控件的方法
公共无效复制信息(控制ctrl1,控制ctrl2){
List VAL=新列表();
foreach(ctrl1.控件中的控件c)
{
如果(c是文本框)
{
if(string.IsNullOrEmpty(((TextBox)c.Text)){}
否则{
//文本框中的值
vals.Add(((文本框)c).Text);
}
}
.............
..........
......
如何获取textbox控件及其值。我会在UserControl上添加一个公共属性,例如:
public string SomeTextboxValue
{
get
{
return SomeTextBox.Text;
}
set
{
SomeTextBox.Text = value;
}
}
然后,您需要将控件转换为其实际类型,而不是泛型控件
类:
SomeControl someControl1 = (SomeControl)ctrl1;
SomeControl someControl2 = (SomeControl)ctrl2;
someControl1.SomeTextboxValue = someControl2.SomeTextboxValue;
或者另一种方式,取决于副本中的发件人和目的地
更新以讨论动态控制
如果控件是动态创建的,而您在回发时找不到它,可能是因为您没有在回发时重新创建控件。我发现本系列文章在尝试了解如何使用和处理动态控件中的数据时非常有趣:
SomeTextBox这是干什么用的?请告诉我如何使用你的代码,我正在动态创建和添加textbox。啊,好的,你应该更新你的问题,以明确这是一个动态文本框,因为它改变了问题。感谢rtpHarry ur链接帮助我。