0
我有2个控件 - ProductInfo和Distribution。
关于产品信息控件有这些文本框 - txtPrice,txtDate,txtFreq 在分布控件上,我想获得上面的文本框的值。 我试过了:我如何获得位于一个控件的文本框的值到另一个控件中
BasePage.FindControl("txtPrice")
但是它返回null。 请帮忙。
感谢,
我有2个控件 - ProductInfo和Distribution。
关于产品信息控件有这些文本框 - txtPrice,txtDate,txtFreq 在分布控件上,我想获得上面的文本框的值。 我试过了:我如何获得位于一个控件的文本框的值到另一个控件中
BasePage.FindControl("txtPrice")
但是它返回null。 请帮忙。
感谢,
我将创建一个ProductInfo控制属性来公开txtPrice的价值,就像这样:
public decimal Price
{
get { return Decimal.Parse(txtPrice.Text); }
}
然后在其他用户的控制,尝试这样的事情:
ProductInfo prod = Page.FindControl("OtherUserControl") as ProductInfo;
if (prod != null)
{
decimal price = prod.Price;
}
递归方法
您可能需要使用递归找到ProductInfo
控制,如果你做这样的事情应该工作:
private Control FindControlRecursive(string controlID, Control parentCtrl)
{
foreach (Control ctrl in parentCtrl.Controls)
{
if (ctrl.ID == controlID)
return ctrl;
FindControlRecursive(controlID, ctrl);
}
return null;
}
使用FindControlRecursive
:
ProductInfo prod = FindControlRecursive("OtherUserControl", Page) as ProductInfo;
if (prod != null)
{
decimal price = prod.Price;
}