powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Реализация собственного BoundField
5 сообщений из 5, страница 1 из 1
Реализация собственного BoundField
    #33913677
Predicate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Интересует, собственно, сабж. В частности, считывание данных из DataSource. В моем случае частный случай — данный наследник от BoundField будет использоваться в DetailsView, сам по себе он представляет из себя TextBox мультилайновый. Заполнение ячейки данными происходит, насколько я понял, в InitializeDataCell, перегружаем... Но какова реализация метода должна быть... Вопрос — откуда брать данные? У меня получается сделать способом, приведенным ниже (объект view будет содержать нужную выборку данных, можно заполнять ячейку). Однако данный способ негибок, т.к. я явно указал, что используется SqlDataSource... Вопрос: как прочитать данные из DataSourceControl??? Может есть вообще другие предложения по реализации данного метода?


protected override void InitializeDataCell(DataControlFieldCell cell, DataControlRowState rowState)
{
    DataBoundControl c = Control as DataBoundControl;
    Control c1 = c.Parent.FindControl(c.DataSourceID);
    if (c1 is SqlDataSource)
    {
        DataSourceSelectArguments args = new DataSourceSelectArguments();
        DataView view = (c1 as SqlDataSource).Select(args) as DataView;
    }

    cell.Controls.Add(TextBoxControl);
}
...
Рейтинг: 0 / 0
Реализация собственного BoundField
    #33913922
Dronopotamus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Predicate, Вы писали:

P>Добрый день!
P>Интересует, собственно, сабж. В частности, считывание данных из DataSource. В моем случае частный случай — данный наследник от BoundField будет использоваться в DetailsView, сам по себе он представляет из себя TextBox мультилайновый. Заполнение ячейки данными происходит, насколько я понял, в InitializeDataCell, перегружаем... Но какова реализация метода должна быть... Вопрос — откуда брать данные? У меня получается сделать способом, приведенным ниже (объект view будет содержать нужную выборку данных, можно заполнять ячейку). Однако данный способ негибок, т.к. я явно указал, что используется SqlDataSource... Вопрос: как прочитать данные из DataSourceControl??? Может есть вообще другие предложения по реализации данного метода?

я никогда не наследовался от BoundField, если надо было сделать кастом ячейку — всегда использовал TemplateField и свой шаблон
Попробуй посмотреть рефлектором реализацию CheckBoxField — это прямой наследник BoundField — я думаю все станет понятно.
Навскидку в методе InitializeDataCell создаются нужные контролы для отображения, которые добавляются в Controls ячейки (DataControlFieldCell). На событие DataBinding этих котролов вешается обработчик, который и присваивает им нужные значения. Значение ячейки DataSource к которому прибиндена текущая ячейка грида получается так:

protected override void OnDataBindField(object sender, EventArgs e)
{
    Control control1 = (Control) sender;
    Control control2 = control1.NamingContainer;
    object obj1 = this.GetValue(control2);
    ...
}... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
Реализация собственного BoundField
    #33919247
Predicate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может глупый вопрос... но что такое "рефлектор"? :shuffle:
...
Рейтинг: 0 / 0
Реализация собственного BoundField
    #33919291
Dronopotamus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Predicate, Вы писали:

P>Может глупый вопрос... но что такое "рефлектор"? :shuffle:

http://www.aisto.com/roeder/dotnet/

это дизасемблер :user:... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
Реализация собственного BoundField
    #33921427
Predicate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Dronopotamus, Вы писали:

D>Здравствуйте, Predicate, Вы писали:

P>>Может глупый вопрос... но что такое "рефлектор"? :shuffle:

D>http://www.aisto.com/roeder/dotnet/

D>это дизасемблер :user:

Спасибо большое! Сильно помог!
Кстати, тот же CheckBoxField наследуется все-таки от BoundField.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Реализация собственного BoundField
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]