Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GridView редактирование полей 
V
    Опции темы
cupper
Дата 10.8.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



Возник новый вопрос по GridView. 
Предположим есть две таблицы А и Б, колонка А1 может принимать значения только из записей добавленных в Б. Я в конструировании БД не силен, поэтому сделал просто две таблицы (независимые) 
Теперь вопрос: в GridView при редактировании записи из таблицы А, а именно колонки А1 диапазон значений должен соответствовать значениям находящимся в таблице Б. 
Само собой напрашивается сделать при редактировании DropDownList. Вопрос в том как его связать со значениями из таблицы Б если  GridView связан с таблицей А ?

Было принято решение при переходе в режим редактирования обращаться к БД и заполнять ето поле динамически.

PS. небольшой организационный вопрос:
Код

<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>

как можно в Bind впихнуть запрос к файлу ресурсов ?
чтото вроде
Код

<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind(<%$ Resources: ResIView, Name %>) %>'></asp:TextBox>

само собой так оно не работает

Это сообщение отредактировал(а) cupper - 10.8.2010, 16:58
PM MAIL   Вверх
EagleOne
Дата 11.8.2010, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 20.11.2009

Репутация: 1
Всего: 1



В Bind не надо ничег впихиват, нужно в EditItemTemplate 
разместить DropDownList и источник данных к нему (в вашем случае ичтоник данных 
вытаскивающий значения из таблицы Б, как я понял). Источник данных привязать к 
DropDownList-у.  
PM MAIL   Вверх
cupper
Дата 11.8.2010, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



Цитата(EagleOne @ 11.8.2010,  09:10)
В Bind не надо ничег впихиват, нужно в EditItemTemplate 
разместить DropDownList и источник данных к нему (в вашем случае ичтоник данных 
вытаскивающий значения из таблицы Б, как я понял). Источник данных привязать к 
DropDownList-у.

нее, вы не поняли, вместо того чтобы писать
Код

Text='<%# Bind("Name") %>'

тобишь жестко использовать константную строку "Name", хотелось бы брать ее в файла ресурсов.

А по поводу связывания DropDownList и источника данных, это тоже происходит динамически (не на странице с разметкой) а в обработчике
Код

private void RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit) &&
                e.Row.RowType == DataControlRowType.DataRow)
        {
            clVacancy clVac = new clVacancy();
            DataTable dt = clVac.SelectPostItems();
            DropDownList ddl = (DropDownList)e.Row.FindControl("ddlIVVacancy");
            ddl.DataSource = dt;
            ddl.DataTextField = ResVacancy.Post;
            ddl.DataValueField = ResVacancy.Post;
            ddl.DataBind();
         }
    }

Вот только одна загвоздка, связать то я связал с данными, а нужно еще сделать ddl.SelectedIndex на ту строчку которая отображалась перед режимом редактирования в lable. Вопрос в том как ее получить ?
Делаю в этом же обработчике
Код

Label lbl = (Label)e.Row.FindControl("lblIVVacancy");
            tbxDTSearch.Text = lbl.Text; // проверка

Но получаю на lbl.Text ошибку
Код

В экземпляре объекта не задана ссылка на объект

---------
было решено следующим образом
В разметки 
Код

DataKeyNames="id_interview, vacancy, name" 

в обработчике
Код

DropDownList ddl = (DropDownList)e.Row.FindControl("ddlIVEditVacancy");
            ddl.DataSource = clVac.SelectPostItems();
            ddl.DataValueField = ResVacancy.Post;
            ddl.DataBind();
            ddl.SelectedValue = gvInterview.DataKeys[e.Row.DataItemIndex].Values[ResIView.Vacancy].ToString();


Это сообщение отредактировал(а) cupper - 11.8.2010, 14:12
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.