2013-05-06 2 views
0

Я использую GridView, который заполняет DetailsViews (метод master/detail). Когда я нажимаю на Select в GridView и отображает DetailsView, это представление остается отображаемым после того, как я выберем еще одну строку из GridView и отобразит другой элемент DetailsView. Мой вопрос: как я могу отображать только один элемент DetailsView в одно и то же время ???hide detailsview при использовании метода master/detail

До сих пор у меня есть:

protected void grdMonster_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //grdMonster is GridView and "BookTitle" is datafield and pnlBooks is panel around BookTitle 
    //DetailsView 
    if (grdMonster.SelectedValue.ToString() != "BookTitle") 
     pnlBooks.Visible = false; 
    else 
     pnlBooks.Visible = true; 
} 

Это не работает! Детальная информация BookTitle не отображается! }

+0

Вы проверили, действительно ли 'grdMonster.SelectedValue' действительно' 'BookTitle" '? – SimpleVar

+0

Да, DetailsView для BookTitle отображает с помощью DetailsView sql как: user963070

+0

Это логика и правила, а не тестирование. Установите точку останова на 'pnlBooks.Visible = true' и посмотрите, не попадет ли она туда. – SimpleVar

ответ

0

Исправлена ​​ошибка с ошибкой. «BOOKTITLE» должен был быть в DataKeyNames вместе со следующим кодом (я добавил этот код для чего-то еще):

охраняемую недействительным grdMonster_SelectedIndexChanged (объект отправителя, EventArgs е) { строка BOOKTITLE = grdMonster.DataKeys [grdMonster. SelectedIndex] [ "BOOKTITLE"] ToString(). sqlDV1.SelectParameters.Clear(); sqlDV1.SelectParameters.Add ("BookTitle", BookTitle); dtv1.DataBind(); }

Не совсем уверен, как это работает, но это так.