我有GridView
从SQLDataSource
读取。数据源具有从CheckBox
拉出的选择参数。当检查过期记录时显示。
<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
的值的开关语句。
使用显示的隐藏条目运行我的选择查询会生成ID
650, 663, 675, 679, 648, 660, 680, 668, 657, 649
条目650和675是“隐藏的”。选中showHiddenEntries
CheckBox
后,GridView
会显示我列出的ID。当我从DropDownList
中选择一些内容并循环访问gV的数据键时,我看到了
663, 679, 648, 660, 680, 668, 657, 649, 645, 652
RowIndex
是正确的,但rowValue
是错误的。我检查了另一个项目,我做了类似的事情,看起来和我完全相同,功能完美。任何人都可以指出我正确的方向来解决这个问题吗?
谢谢!
Toni W。
编辑:我刚才意识到我的措辞有点不好。 RowIndex
是正确的,但整行都是错误的,而不只是rowValue
。如果我检查了showHiddenEntries
,则在我的GridView中,行0为10, "Jane", "Doe", hidden
,行1为15, "Misc", "Person", shown
,我从行0 RowIndex
中的DropDownList中选择为0并且数据为15, "Misc", "Person", shown
。
答案 0 :(得分:1)
看起来所有的值都存在,只是没有按预期的顺序。通常,在启用排序时会发生这种情况。请尝试使用DisplayIndex
。