Не удалось найти usercontrol в edittemplate списка данных

У меня есть webusercontrol в шаблоне редактирования данных. в коде позади, в itemCommand, когда я пытаюсь найти его с помощью findcontrol, я получаю нулевой объект.

что я делаю не так?

WebUserControl cntrl = (WebUserControl)e.Item.FindControl("myControl");

или я также попробовал следующее, в событии EditCommand, потому что я держал пользовательский контроль внутри EditTemplate DataList:

WebUserControl cntrl = (WebUserControl)DataList1.FindControl("myControl");

2 ответа

На самом деле не обращайте внимания, я переместил элемент управления на шаблон заголовка и, глядя на его коллекцию элементов управления, смог найти элемент управления с помощью FindControl. Не уверен, почему его не найти, если я помещу его в шаблон редактирования. но спасибо, ребята, ценю вашу помощь.

Я думаю, что вы, вероятно, делаете что-то вроде этого:

    protected void gridView_rowDataBound(Object sender, GridViewRowEventArgs e)
    {
        WebUserControl cntrl = (WebUserControl)e.Item.FindControl("myControl");
    }

Имейте в виду, что вы будете смотреть на каждую строку, включая строки верхнего и нижнего колонтитула.

Я думаю, что вам нужно это:

    protected void gridView_rowDataBound(Object sender, GridViewRowEventArgs e)
    {
       if (e.Row.RowType == DataControlRowType.DataRow){
            WebUserControl cntrl = (WebUserControl)e.Item.FindControl("myControl");
       }
    }
Другие вопросы по тегам