Fint элемент управления asp на странице, но возвращает NULL - PullRequest
0 голосов
/ 28 августа 2011

, HI,

На моей странице .aspx у меня есть dataGrid с id = "dataGrid1", мне нужно отредактировать этот элемент управления для класса в app_code.

Это то, чтоя делаю в своем классе:

if (HttpContext.Current.Handler is Page)
        {
            Page currentPage = (Page)HttpContext.Current.Handler;
            if (currentPage != null)
            {                  
                Control ctrl = FindControlRecursive(currentPage, "dataGrid1");
            }
        }

Тогда у меня есть эта рекурсивная функция:

public static Control FindControlRecursive(Control root, string id)
    {
        if (root.ID == id)
        {
            return root;
        }

        foreach (Control c in root.Controls)
        {
            Control t = FindControlRecursive(c, id);
            if (t != null)
            {
                return t;
            }
        }

        return null;
    }

Но по какой-то причине он не находит мой контроль и возвращает ноль.

Может ли кто-нибудь помочь ???

Спасибо

1 Ответ

0 голосов
/ 28 августа 2011

Так как вы уже получаете экземпляр страницы, попробуйте добавить публичный метод, который будет возвращать Grid, и получите такой код:

Page currentPage = (Page)HttpContext.Current.Handler;
if (currentPage != null)
{     
    DataGrid myGrid = (currentPage as YourClassName).GetGrid();
    ...
}

Кроме того, каков контекст вашего кода? Когда он исполняется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...