Mam DropDownList w GridView. Podczas akcji edycji DropDownList we wszystkich wierszach działają poprawnie podczas edycji (i aktualizacji).

Ale w niektórych wierszach po kliknięciu przycisku edycji wyświetla się następujący błąd:

„DropDownList3” ma SelectedValue, która jest nieprawidłowa, ponieważ nie istnieje na liście elementów. Nazwa parametru: wartość

To jest kod:

<asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="AccessDataSource4"
    DataTextField="ProvinceName" DataValueField="ProvinceName" SelectedValue='<%# Bind("Province") %>'>
</asp:DropDownList>

Tabela "RateCenters" jest wyświetlana w Gridview, która ma "Kolumnę prowincji". Kolumna Province pobiera źródło z "ProvinceName" tabeli ProvinceList.

Uprzejmie daj mi znać rozwiązanie.

1
Arjun Babu 27 luty 2012, 18:38

2 odpowiedzi

Najlepsza odpowiedź

Twój znacznik mówi, że wiążesz SelectedValue swojego DropdownList z polem „Prowincja” w nadrzędnym źródle danych (źródło danych dla Gridview)

Wartości w DropDownList pochodzą z pola „ProvinceName” w kontrolce AccessDataSource4.

Ten błąd oznacza, że ​​Twój kod wybiera wartość ze źródła danych GridView (pole „Prowincja”), która nie istnieje na liście wartości zwracanych w polu „Nazwa prowincji” kontrolki AccessDataSource4.


Szybkim rozwiązaniem tego problemu byłoby zmodyfikowanie „SelectCommand” AccessDatasource4 tak, aby uruchamiało to samo zapytanie, co źródło danych kontrolki GridView, ale tylko z jedną kolumną, której potrzebujesz („ProvinceName”) w listę SELECT. W ten sposób masz gwarancję, że będziesz mieć te same wartości.

2
Josh Darnell 27 luty 2012, 18:57

Jeśli programowo ustawisz wartość w DDL (DropDownList), która faktycznie nie istnieje na liście, otrzymasz ten błąd.

Scenariusz: wybierasz opcję 5 w DDL, ale zawiera ona tylko 3 opcje, na przykład

Powiedz, użyj trochę więcej o swoim kodzie, abyśmy mogli zbadać sprawę.

1
Hammad Khan 27 luty 2012, 18:42