Как "получить" выделенную строку из GridView?

super-medved
Дата: 20.05.2010 16:08:16
Извиняюсь за ламерский вопрос. Есть гридвью, отображающий таблицу + несколько столбцов связанной таблицы. Как можно получить данные(записьиз БД) относящиеся к выделенной строки GridView?
  //Demand - класс, автоматически сгенерированный DataClasses, получен из таблицы Demands
  protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        Demand editDem = new Demand();
        editDem = (Demand)GridView1.SelectedDataKey.Value;
        Label1.Text = editDem.Name;
    }
Пытался так вот сделать, но видно из за наличия Inner join к таблице Users не работает.
Заранее спасибо, интересует самый простой способ реализации :)
Zoria
Дата: 20.05.2010 16:48:29
super-medved,

e.Row.DataItem что возвращает?
super-medved
Дата: 20.05.2010 17:38:25
Вот я дебил - оказалось GridView1.SelectedValue возвращает не "объект" а значение ключевого поля. Сделал так, не знаю "нормально" это или нет, но работает:
  protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string ID = GridView1.SelectedValue.ToString();
        DataClassesDataContext dc = new DataClassesDataContext();
        Demand editDem = new Demand();
        editDem = (from eD in dc.Demands
                   where eD.ID == Convert.ToInt32(ID)
                   select eD).First();

        Label2.Text = editDem.Name;
    }
Zoria
e.Row.DataItem что возвращает?

честно говоря, не знаю :)

Дабы не плодить свои нубские вопросы, спрошу здесь:
Как лучше сделать изменение свойства BackColor для выделенной строки, то есть выделили строчку - цвет поменялся, выделили другую - цвет вернул первоначальное значение. Вариант при каждом выделении "обнулять" цвет всех строк, а потом "выделять" одну помоему не очень оптимален? Да?
Zoria
Дата: 20.05.2010 18:02:41
super-medved
честно говоря, не знаю :)

Поставьте точку останова под отладчиком и посмотрите.
super-medved

Как лучше сделать изменение свойства BackColor для выделенной строки


У гридвью есть свойства стилей, в том числе и для SelectedRow, а можно и цсс-класс присваивать.

<selectedrowstyle backcolor="LightCyan" forecolor="DarkBlue" font-bold="true"/> 
super-medved
Дата: 20.05.2010 19:04:36
Zoria
Поставьте точку останова под отладчиком и посмотрите.

Чет нет там ничего, только Empty.
Да в принципе тот метод, который я выше привел - работает. Меня устраивает - диплом пишу, а не софт для космических аппаратов.
<selectedrowstyle backcolor="LightCyan" forecolor="DarkBlue" font-bold="true"/> 
Подозревал что что-нибудь подобное есть)) Огромное спасибо за помощь, еще раз извиняюсь за "тупые" вопросы.