2013-05-13 33 views
0

我有一個下拉列表爲'ddVehicleType',它位於編輯字段中。 iam在頁面加載時從數據庫中獲得價值。但錯誤就要像錯誤:'ddVehicleType'具有無效的SelectedValue,因爲它不存在於項目列表中。參數名稱:值

'ddVehicleType' has a SelectedValue which is invalid because it does not exist in the list of items.Parameter name: value 

我的編碼是,

while (reader.Read()) 
         {  
           ddVehicleType.SelectedValue = reader["VehicleId"].ToString(); 

         }  

設計頁面,

<asp:DropDownList ID="ddVehicleType" runat="server" AppendDataBoundItems="true" CssClass="drop" DataSourceID="SqlDataSource2" DataTextField="VehicleType" DataValueField="VehicleId"> 
       <asp:ListItem Value="0">-Select-</asp:ListItem> 
      </asp:DropDownList> 

      <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:TAXIConnectionString %>" SelectCommand="SELECT [VehicleId], [VehicleType] FROM [VehicleMaster] WHERE ([Status] = @Status)"> 
       <SelectParameters> 
        <asp:Parameter DefaultValue="Available" Name="Status" Type="String" /> 
       </SelectParameters> 
      </asp:SqlDataSource> 
+0

也許讓它:QueryStringParameter?因爲你正在使用一個字符串 – DiederikEEn 2013-05-13 08:40:42

回答

0

,而不是while循環使用如果 原因只有一個值可以被選爲下拉列表不是多個。 所以去掉while循環

if (reader.Read()) 
{  
     ddVehicleType.SelectedValue = reader["VehicleId"].ToString(); 
}  

OR

可能是

<asp:ListItem Value="0">-Select-</asp:ListItem> 

while (reader.Read()) 
{  
     ddVehicleType.SelectedValue = reader["VehicleId"].ToString(); 
}  

值不SQLAdapter你VALU類型參數字符串匹配 也是不同的不像你在代碼中傳遞的東西。

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:TAXIConnectionString %>" SelectCommand="SELECT [VehicleId], [VehicleType] FROM [VehicleMaster] WHERE ([Status] = @Status)"> 
       <SelectParameters> 
        <asp:Parameter DefaultValue="Available" Name="Status" Type="String" /> 
       </SelectParameters> 
      </asp:SqlDataSource> 
相關問題