代码之家  ›  专栏  ›  技术社区  ›  cyberbobcat

在ASP.NET中,如何找到嵌套在DetailsView中的文本框的控件ID,该DetailsView随后嵌套在AJAX UpdatePanel控件中?

  •  0
  • cyberbobcat  · 技术社区  · 17 年前

    n ASP.NET如何查找嵌套在DetailsView中的文本框的控件ID,该DetailsView随后嵌套在AJAX UpdatePanel控件中?

    继承人是:UpdatePanel1->dvContentDetail(DetailsView控件)——>文本框2

    我尝试了以下方法,但只是说找不到对象:

    UpdatePanel1.FindControl("dvContentDetail").FindControl("TextBox2").ClientID
    
    2 回复  |  直到 17 年前
        1
  •  1
  •   Muhammad Akhtar    17 年前

    不需要从updatepanel中找到控件,因为这些控件直接可用,所以您的代码如下。。。

    TextBox TextBox2 = (TextBox)dvContentDetail.FindControl("TextBox2");
    
        2
  •  0
  •   Aaron Hoffman    17 年前

    您可以尝试下面的代码。但是如果你知道等级制度是 要更改它,最好执行一系列“FindControl”调用。要发现正确的层次结构,请调试应用程序并搜索控件层次结构。

    public static T FindControlRecursiveInternal<T>(Control startingControl, string controlToFindID) where T : Control
    {
        if (startingControl == null || String.IsNullOrEmpty(controlToFindID))
            return (T)null;
    
        Control foundControl = startingControl.FindControl(controlToFindID);
        if (foundControl == null)
        {
            foreach (Control innerControl in startingControl.Controls)
            {
                foundControl = FindControlRecursiveInternal<T>(innerControl, controlToFindID);
                if (foundControl != null)
                    break;
            }
        }
    
        return (T)foundControl;
    }
    
    推荐文章