2011-12-19 66 views
0

我有一個DropDownList,它具有從SQL數據庫中獲取的值。根據DropDownList的選擇,我也從SQL數據庫填充一個GridView。'輸入的字符串格式不正確'錯誤

當我在DropDownList上設置AutoPostBack = true時,出現'輸入字符串格式不正確'的錯誤。

我的DropDownList:

<html> 
<asp:DropDownList ID="ddlClient" runat="server" DataSourceID="dsClientList"      AppendDataBoundItems="True" DataTextField="Name" DataValueField="Name" TabIndex="0" Font-Names="Verdana" Font-Size="11px" ForeColor="#2D2D2D" AutoPostBack="true"> 
     <asp:ListItem Value="">--- Select ---</asp:ListItem> 
    </asp:DropDownList> 
    <asp:ObjectDataSource ID="dsClientList" runat="server" SelectMethod="GetList" TypeName="Class.Client"> 
    </asp:ObjectDataSource> 
</html> 

在我的ObjectDataSource我的GridView我用下面的SelectParameters:

<SelectParameters> <asp:ControlParameter ControlID="ddlClient" Name="pClientID" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters>

任何幫助嗎?

感謝

回答

1

您必須設置數值列爲DataValueField="Name".可能是IDNumber

<asp:DropDownList ID="ddlClient" runat="server" DataSourceID="dsClientList" 
        AppendDataBoundItems="True" 
        DataTextField="Name" 
        DataValueField="pCientID" 
..... 
+0

謝謝你太多了!這工作完美,不得不將其更改爲ID而不是使用名稱。 – Melanie 2011-12-19 09:29:22

3

它可能正試圖尋找這個列表項的值轉換爲int

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

空字符串不能轉換爲整數,請嘗試使用-1或0

+0

我試過使用0,但它仍然做同樣的; /我放棄了asp.net – Melanie 2011-12-19 09:15:51

0

您可以通過設置默認值--- Select ---,如果您設置空白""哪些不能解析到Int32,您可以使用下面的代碼塊:

<html> 
<asp:DropDownList ID="ddlClient" runat="server" DataSourceID="dsClientList"      AppendDataBoundItems="True" DataTextField="Name" DataValueField="yourClientIDField" TabIndex="0" Font-Names="Verdana" Font-Size="11px" ForeColor="#2D2D2D" AutoPostBack="true"> 
    <asp:ListItem Value="0">--- Select ---</asp:ListItem> 
</asp:DropDownList> 
<asp:ObjectDataSource ID="dsClientList" runat="server" SelectMethod="GetList" TypeName="Class.Client"> 
</asp:ObjectDataSource> 
</html>