2013-05-06 54 views
0

我正在使用填充DetailsView(主/細節方法)的GridView。當我點擊GridView中的Select並顯示DetailsView時,在我從GridView中選擇另一行並顯示另一個DetailsView之後,該視圖仍然顯示。我的問題是:如何在同一時間只顯示一個DetailsView?使用主/明細方法時隱藏細節視圖

到目前爲止,我有:

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 DetailsView不顯示! }

+0

你是否檢查'grdMonster.SelectedValue'是否真的''BookTitle''? – SimpleVar 2013-05-06 00:58:52

+0

是的,DetailsView for BookTitle使用DetailsView sql顯示爲: user963070 2013-05-06 01:17:37

+0

邏輯和規則,而不是測試。在'pnlBooks.Visible = true'上設置一個斷點,看它是否到達那裏。 – SimpleVar 2013-05-06 02:03:32

回答

0

修復它意外。 「BOOKTITLE」 是在用下面的代碼沿的DataKeyNames需要(I添加別的東西此代碼):

保護無效grdMonster_SelectedIndexChanged(對象發件人,EventArgs的) { 串BOOKTITLE = grdMonster.DataKeys [grdMonster。的SelectedIndex] [ 「BOOKTITLE」]的ToString(); sqlDV1.SelectParameters.Clear(); sqlDV1.SelectParameters.Add(「BookTitle」,BookTitle); dtv1.DataBind(); }

不太確定這是如何工作,但它確實如此。

相關問題