输入字符串格式不正确'错误

本文关键字:错误 不正确 字符串 格式 输入 | 更新日期: 2023-09-27 18:18:10

我有一个下拉列表的值,我从一个SQL数据库。根据从DropDownList中做出的选择,我填充了一个GridView,同样来自SQL数据库。

当我在下拉列表上设置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>

帮忙吗?

谢谢

输入字符串格式不正确'错误

可能正在尝试将此列表项的值转换为int

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

空字符串不能转换为整数,请尝试使用-1或0。

您必须为DataValueField="Name".设置数字列,可能是IDNumber

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

你可以尝试设置--- 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>