DropDownList GridView Row错误的值

时间:2013-10-03 16:18:01

标签: c# .net sql-server

我有GridViewSQLDataSource读取。数据源具有从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

1 个答案:

答案 0 :(得分:1)

看起来所有的值都存在,只是没有按预期的顺序。通常,在启用排序时会发生这种情况。请尝试使用DisplayIndex