Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Посдкажите с редактированием в GridView

422
17 июня 2006 года
Dimarik
181 / / 12.02.2005
Подскажите хотя бы какую-нибудь ссылочку по этой теме.

Нужно из БД вывести данные с помощью GridView с возможностью их редактирования. Вот есть два варианта

1. Все данные выводить с помощью TextBox'ов, CheckBox'ов и т.д. и при постбэке сравнивать значения этих box'ов со значениями датасета.
Ну как это мне кажется не очень красиво.

2. Вот этот вариант хотелось бы по-подробнее разобрать и понять. Т.е. сделать так, чобы при нажатии кнопки Edit записи в выводимой таблице превращались, например, в TextBox, CheckBox. Вот нащёл пример в статье http://www.gotdotnet.ru/LearnDotNet/ASPNET/684.aspx.

Там написан пример как строку в DataGrid перевести в режим редактирования, вроде всё сделал, как там описано.
Вот пишу так:

<asp:TemplateField HeaderText="Опубликовать">
<EditItemTemplate>
<asp:CheckBox
Checked='<%# DataBinder.Eval(Container, "DataItem.pub")%>'
ID="pub" runat="server" Width="136px" />
</EditItemTemplate>
</asp:TemplateField>

И в результате выводится пустая колонка. А если заменить EditItemTemplate на ItemTemplate, то выводятся чекбоксы как надо. Подскажите, что я неправильно делаю?

Заранее спасибо
422
18 июня 2006 года
Dimarik
181 / / 12.02.2005
По поводу второго варианта. Хотелось бы сделать, чтобы строка в таблице переводилаьс в режим редактирования при кликании крурсором мыши на ней (этой строке)
273
18 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
Допустим, на Web-форме есть компонент источник данных
 
Код:
<asp:sqldatasource id="myDataSource"
        selectcommand="Select * From [myTable]"
        runat="server"/>

В обработчике Load формы пишешь:
Код:
void Page_Load(Object sender, EventArgs e)
    {
       
        GridView customersGridView = new GridView();
        customersGridView.AutoGenerateEditButton=true; //кнопка для редактирования
        customersGridView.ID = "myGridView";
        customersGridView.DataSourceID = "myDataSource";
        customersGridView.AutoGenerateColumns = true;
        Form.Controls.Add(customersGridView);
       
    }
422
18 июня 2006 года
Dimarik
181 / / 12.02.2005
Спасибо, уже разобрался.
Вот здесь http://www.codersource.net/asp_net_grid_view_whidbey.aspx
Но вот возник вопрос
Во этой статье приводятся такие вот строки кода

<asp:Label Text='<%# Eval("ItemType") %>' Runat="Server"/>

<asp:DropDownList id="EditType" DataSourceID="TypeSource" Runat="Server"
DataTextField="ItemType" DataValueField="ItemType" SelectedValue='<%# Bind("ItemType") %>'/>

В чём разница между Eval("ItemType") и '<%# Bind("ItemType") %>'? Я вообще обычно использовал
DataBinder.Eval(Container, "DataItem.pub")
273
22 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=Dimarik]Спасибо, уже разобрался.
Вот здесь http://www.codersource.net/asp_net_grid_view_whidbey.aspx
Но вот возник вопрос
Во этой статье приводятся такие вот строки кода

<asp:Label Text='<%# Eval("ItemType") %>' Runat="Server"/>

<asp:DropDownList id="EditType" DataSourceID="TypeSource" Runat="Server"
DataTextField="ItemType" DataValueField="ItemType" SelectedValue='<%# Bind("ItemType") %>'/>

В чём разница между Eval("ItemType") и '<%# Bind("ItemType") %>'? Я вообще обычно использовал
DataBinder.Eval(Container, "DataItem.pub")[/quote]
Eval выполняет вычисление выражения привязываемых данных (так сказать мгновенное значение данных).
Метод Bind выполняет привязку (не обращение через рефлексию к свойству, как в eval) данных к контролу (выполняет отражаемое значение данных). Если контрол позволяет редактировать данные, то привязку можно производить только через Bind.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог