1

我有一个GridView从 a 读取的SQLDataSource。数据源有一个从CheckBox. 检查时显示过时的记录。

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

我正在考虑在GridView狭窄页面上节省空间的想法,并将标准控件替换为DropDownList. 在onSelectedIndexChanged我设置的 DropDownLists...

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 。当我从DropDownListgV 的数据键中选择并循环时,我看到

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

是对的RowIndex,但是rowValue是错的。我检查了另一个项目,在那里我做了类似的事情,它看起来和我一模一样并且功能完美。谁能指出我正确的方向来解决这个问题?

谢谢!

托尼·W。

编辑:我刚刚意识到我的措辞有点糟糕。是正确的RowIndex,但整行都是错误的,而不仅仅是rowValue. 如果我showHiddenEntries检查过,在我的 GridView 中,第 010, "Jane", "Doe", hidden行是第 1 行15, "Misc", "Person", shown,我从第 0 行的 DropDownList 中选择RowIndex的结果为 0,数据为15, "Misc", "Person", shown.

4

1 回答 1

1

看起来所有的值都在那里,只是没有按照预期的顺序。通常,当您启用排序时会发生这种情况。尝试DisplayIndex改用。

于 2013-10-03T16:28:59.220 回答