我有一個GridView
從SQLDataSource
讀取。數據源有一個從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是「隱藏」。在選中showHiddenEntries
CheckBox
後,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的值不在'gV'的'DataKeys'中,其他x數字在那裏並且按正確的順序。 – Marie
@ToniW:我有點困惑?你能澄清嗎? –
我編輯了原始的一點,包括髮生了什麼的例子。 ORDER BY基於不改變的日期時間。如果我有100行,並設置我的GridView顯示他們所有的返回正確的順序,並顯示在我的GridView與他們所屬的隱藏值。如果我激活一行DropDownList並使用原始文章中的代碼獲取GridView,然後通過其DataKeys循環顯示98條目,不包括hidden = 1的條目 – Marie