【问题标题】:'Input string not in correct format' Error'输入字符串格式不正确' 错误
【发布时间】:2011-12-19 09:10:22
【问题描述】:

我有一个 DropDownList,其中包含从 SQL 数据库中获取的值。根据从 DropDownList 中所做的选择,我填充了一个 GridView,也来自一个 SQL 数据库。

当我在 DropDownList 上设置 AutoPostBack=true 时,我收到“输入字符串格式不正确”错误。

我的下拉列表:

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

在我的 GridView 的 ObjectDataSource 中,我使用以下 SelectParameters:

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

有什么帮助吗?

谢谢

【问题讨论】:

    标签: c# asp.net drop-down-menu


    【解决方案1】:

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

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

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

    【讨论】:

    • 我尝试使用 0,但还是一样;/我放弃了 asp.net
    【解决方案2】:

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

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

    【讨论】:

    • 非常感谢!效果很好,必须将其更改为 ID 而不是使用名称。
    【解决方案3】:

    您可以尝试为--- 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 2018-04-07
      • 1970-01-01
      相关资源
      最近更新 更多