控件包含两个文本框现在我想从我在usercontrol中调用它的页面中的这些文本框中获取值
public string MethodHere()
{
return "Some Special text Which is only know to this User Control "+ FirstName.Text +" Last Name is "+ LastName.Text;
}
我调用我的用户控件的页面我想调用此方法名为" MethodHere"像这样的东西
UserControls_TestUserControl1 test1 = new UserControls_TestUserControl1();
lbloutput.Text = "<br/>" +test1.MethodHere();
但是当我调用MethodHere时,它会在FirstName.Text上抛出错误,表示没有设置对象引用。
注意:我使用这种从UserControl获取价值的方式
我也尝试了这个,但这不是我正在寻找的
foreach (Control item in ctrl.Controls)
{
if (item.GetType().Name=="TextBox")
{
TextBox txt = (TextBox)item;
output+=" you Wrote: "+ txt.Text+" <br/>";
}
}
现在出现的问题是为什么这段代码不适合我,因为我想得到一些只有这个用户控件知道的特殊文本,我可以在这里得到一些东西。
答案 0 :(得分:0)
您可以直接转换usercontrol中存在的文本框控件,并使用它的Text
属性,如下所示: -
TextBox FirstName= (TextBox)this.UserControls_TestUserControl1ID.FindControl("FirstName");
TextBox LastName= (TextBox)this.UserControls_TestUserControl1ID.FindControl("LastName");
然后你可以直接得到文字: -
lbloutput.Text = "Some Special text Which is only know to this User Control "
+ FirstName.Text + "Last Name is" + LastName.Text;
<强>更新强>
如果要调用UserControl中存在的方法,请在标记页面中定义时为控件分配ID
: -
<UCL:TestUserControl ID="TestCtrl" runat="server" />
,只需使用此ID来调用您的方法: -
lbloutput.Text = "<br/>" + TestCtrl.MethodHere();