0

n ASP.NET 如何找到嵌套在 DetailsView 中的 TextBox 的控件 ID,然后嵌套在 AJAX UpdatePanel 控件中?

层次结构是:UpdatePanel1 -> dvContentDetail (DetailsView Control) -> TextBox2

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

UpdatePanel1.FindControl("dvContentDetail").FindControl("TextBox2").ClientID
4

2 回答 2

1

无需从updatepanel中查找控件,因为这些控件直接可用,所以你的代码会是这样的……

TextBox TextBox2 = (TextBox)dvContentDetail.FindControl("TextBox2");
于 2009-07-09T05:09:36.223 回答
0

您可以尝试类似下面的代码。但是,如果您知道层次结构不会改变,最好执行一系列“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;
}
于 2009-07-08T17:47:41.880 回答