Класс для автоматического извлечения полей базы данных в .NET Controls - PullRequest
0 голосов
/ 11 ноября 2008

Я создаю класс, который автоматически загружает запись БД, просматривает имя каждого столбца БД и заполняет соответствующее текстовое поле / метка / литерал / и т. Д., Если оно имеет то же имя. Я получил эту идею от Rails, на случай, если это поможет уточнить, что я пытаюсь сделать.

public string presentData(Page thisForm)
{
// .. for each column name
// ... thisForm.FindControl() happens
}

Кажется, я не могу найти элемент управления, который мне нужен, и вполне может быть лучший способ сделать это.

Редактировать: Если я могу сэкономить на производительности, делая это другим способом, определенно предложите это. У меня большие формы, и рекурсивный FindControl может привести к увеличению времени выполнения.

Ответы [ 3 ]

3 голосов
/ 11 ноября 2008

FindControl не является рекурсивным, поэтому он находит только элементы управления верхнего уровня, а не элементы управления, вложенные в другие элементы управления. См. эту статью для примера рекурсивной версии FindControl.

1 голос
/ 11 ноября 2008

Я предлагаю использовать BindingSource, связанный с DataSet, вместо того, чтобы рекурсивно находить каждый элемент управления и устанавливать его значение.

http://msdn.microsoft.com/en-us/baya8sx4.aspx

http://msdn.microsoft.com/en-us/library/801dxw2t.aspx

http://www.codeproject.com/KB/grid/BindSourceBindingNavCS.aspx

http://msdn.microsoft.com/en-us/library/fbk67b6z(VS.80).aspx?ppud=4

0 голосов
/ 11 ноября 2008

Задумывались ли вы о том, чтобы заполнить свои элементы управления на стороне клиента? JQuery может быть хорошим местом для начала. Вы должны сгенерировать Javascript / JQuery для заполнения на сервере, а затем JQuery позаботится о поиске элементов управления. Очень эффективно.

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