2013-10-03 59 views
1

我有一個GridViewSQLDataSource讀取。數據源有一個從CheckBox中提取的選擇參數。顯示檢查過期的記錄時。DropDownList GridView行錯誤值

<asp:ControlParameter Name="showHidden" 
    ControlID="showHiddenEntries" 
    DbType="Boolean" 
    DefaultValue="0" 
    PropertyName="Checked" /> 

我一個主意打在GridView節省空間狹窄的網頁上,並已經取代了標準控制用DropDownList。在DropDownLists onSelectedIndexChanged我設置...

DropDownList controlList = (DropDownList)sender; 
GridViewRow row = (GridViewRow)controlList.NamingContainer; 
int RowIndex = row.RowIndex; 
string rowValue = gV.DataKeys[RowIndex].Value.ToString(); 

然後我對DropDownList值的switch語句。

運行我的顯示隱藏的條目選擇查詢生成的ID

650, 663, 675, 679, 648, 660, 680, 668, 657, 649 

項650和675是「隱藏」。在選中showHiddenEntriesCheckBox後,GridView會顯示我列出的ID。當我通過GV的數據鍵選擇從DropDownList東西,環路我看到

663, 679, 648, 660, 680, 668, 657, 649, 645, 652 

RowIndex是正確的,但rowValue是錯誤的。我檢查了另一個項目,我做了類似的事情,看起來和我完全一樣,功能完美。任何人都可以指出我正確的方向來解決這個問題嗎?

謝謝!

託尼W.

編輯:我才意識到我的措辭是有點糟糕。 RowIndex是正確的,但是整行錯誤,而不僅僅是rowValue。如果我已檢查showHiddenEntries,在我的GridView行0中爲10, "Jane", "Doe", hidden,並且第1行爲15, "Misc", "Person", shown,並且我從行0中的DropDownList中選擇RowIndex評估爲0,數據爲15, "Misc", "Person", shown

回答

1

它看起來像所有的價值在那裏,只是沒有按預期的順序。通常,這種情況發生在啓用排序時。嘗試使用DisplayIndex代替。

+0

謝謝,但我不認爲是。隱藏= 1的值不在'gV'的'DataKeys'中,其他x數字在那裏並且按正確的順序。 – Marie

+0

@ToniW:我有點困惑?你能澄清嗎? –

+0

我編輯了原始的一點,包括髮生了什麼的例子。 ORDER BY基於不改變的日期時間。如果我有100行,並設置我的GridView顯示他們所有的返回正確的順序,並顯示在我的GridView與他們所屬的隱藏值。如果我激活一行DropDownList並使用原始文章中的代碼獲取GridView,然後通過其DataKeys循環顯示98條目,不包括hidden = 1的條目 – Marie