2011-12-19 19 views
0

SQLデータベースから取得した値を持つDropDownListがあります。 DropDownListからの選択に応じて、SQLデータベースからもGridViewを作成します。'入力文字列が正しい形式ではありません'エラー

DropDownListでAutoPostBack = trueを設定すると、「入力文字列が正しい形式ではありません」というエラーが表示されます。

私のDropDownList:私のGridViewのための私のObjectDataSourceで

<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> 

私は、次のSelectParametersを使用します。

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

任意のヘルプ?

おかげ

答えて

1

DataValueField="Name".の数値列をIDまたはNumberに設定する必要があります。

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

をあきらめるよありがとうございました!それは完全に機能し、名前を使用する代わりにIDに変更する必要がありました。 – Melanie

3

おそらく、空の文字列を整数に変換することができない、-1または0

を使用してみてください int

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

にこのリスト項目の値を変換しようとしています

+0

私は0を使用してみましたが、それはまだ同じでした。/私はasp.net – Melanie

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> 
関連する問題