Найти идентификатор клиента в пользовательском элементе управления в виде сетки - PullRequest
0 голосов
/ 05 декабря 2011

Итак ... Я пытаюсь найти идентификатор клиента для элемента управления (скрытое поле ввода), который является частью пользовательского элемента управления, который динамически привязан к представлению таблицы «Шаблон элемента». Я пытался сделать следующее в событии "RowDataBound" и, похоже, не работает.

protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
        if (ShowSelectColumn)
        {

            HiddenField MfrHiddenField =  (e.Row.Cells[2].FindControl("MfrNumHiddenfield")) as HiddenField;
}

где "MfrNumHiddenfield" - это идентификатор скрытого поля ввода. e.row.cells [2] - это номер ячейки столбца, к которому привязан «пользовательский элемент управления» ...

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

    grid.Columns.Add(CreateTemplateField(
            path + "ManufacturerHeader.ascx",
            path + "ManufacturerCell.ascx"));

Что-то не так с тем, что я пытаюсь сделать? пожалуйста помогите

1 Ответ

1 голос
/ 05 декабря 2011

Обычно вам не нужно заглядывать в камеру.e.Row.FindControl("MfrNumHiddenfield") должно быть достаточно.

Поскольку вы ищете элемент управления в пользовательском элементе управления, вы можете попробовать:

e.Row.FindControl("manufacturerCellControl").FindControl("MfrNumHiddenfield")

Я никогда не пробовал, но это кажется правдоподобным.

Лучшим вариантом было бы выставить свойство из элемента управления ManufacturerCell для внесения необходимых изменений.Это избавило бы клиентов контроля от необходимости понимать внутреннюю работу.Просто создайте свойство и напишите код в методах get и set.

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