2011-12-19 2 views
0

У меня есть DropDownList со значениями, которые я получаю из базы данных SQL. В зависимости от выбора, сделанного из DropDownList, я заполняю GridView, также из базы данных SQL.«Строка ввода не в правильном формате» Ошибка

Когда я устанавливаю AutoPostBack = true в DropDownList, я получаю ошибку «Входная строка не в правильном формате».

Мой 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". Может быть ID или Number.

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

Спасибо вам большое! Это сработало отлично, пришлось заменить его на ID вместо использования Name. – Melanie

3

Это, вероятно, пытается преобразовать значение этого элемента списка к int

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

пустая строка не может быть преобразована в целое число, попробуйте использовать -1 или 0.

+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> 
Смежные вопросы