У меня есть GridView
, который читается с SQLDataSource
. Источник данных имеет параметр выбора, который тянет от CheckBox
. Когда проверены устаревшие записи.DropDownList GridView Row неверное значение
<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
.
Запуск моего запроса на выборке со скрытыми записями, показанными производит идентификаторы
650, 663, 675, 679, 648, 660, 680, 668, 657, 649
Запись 650 и 675 являются «скрытыми». С showHiddenEntries
CheckBox
проверено, что GridView
отображает идентификаторы, перечисленные мной. Когда я выбираю что-то из DropDownList
и проходное ключей данных ГВ, я вижу
663, 679, 648, 660, 680, 668, 657, 649, 645, 652
RowIndex
правильно, но rowValue
неправильно. Я проверил с другим проектом, где я сделал что-то подобное, и он выглядит идентично мне и прекрасно работает. Может ли кто-нибудь указать мне в правильном направлении, чтобы исправить это?
Спасибо!
Toni W.
Edit: Я просто понял, что сформулированное, что немного плохо. RowIndex
верен, но вся строка неправильная, а не только rowValue
. Если у меня есть showHiddenEntries
, то в моей строке GridView 0 есть 10, "Jane", "Doe", hidden
, а строка 1 - 15, "Misc", "Person", shown
, и я выбираю fromthe DropDownList в строке 0 RowIndex
оценивает в 0, а данные 15, "Misc", "Person", shown
.
Спасибо, но я не думаю, что это так. Значения, в которых hidden = 1, просто не находятся в '' DataKeys 'gV', другие x-номера есть и в правильном порядке. – Marie
@ToniW: Я немного смущен? Вы можете уточнить? –
Я немного отредактировал оригинал, чтобы включить пример того, что происходит. ORDER BY основан на datetime, который не изменяется. Если у меня есть 100 строк и установите gridview, чтобы показать им все, они возвращаются в правильном порядке и отображаются в моем GridView со скрытыми значениями, в которых они принадлежат. Если я активирую строки DropDownList и получаю GridView, используя код в исходном столбце, а затем прокручиваю его DataKeys, он отображает 98 записей, за исключением тех, где hidden = 1 – Marie