我怎么能得到一个文本框的值位于一个控件到另一个控件

本文关键字:控件 于一个 另一个 文本 一个 怎么能 | 更新日期: 2023-09-27 18:10:35

我有两个控件- ProductInfo和Distribution。
在产品信息控件上有这些文本框- txtPrice, txtDate, txtfrequency在分布控件上,我想获得上述文本框的值。I tried:

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;
}