0

好吧,根据下拉值,我需要将表单中的值插入到数据库表中。但它现在不起作用。

这是我的 aspx 页面-

<asp:DropDownList ID="DropDownList1" class="box" runat="server" AutoPostBack="True">
        <asp:ListItem>Confirm Order</asp:ListItem>
        <asp:ListItem>Tentative Order</asp:ListItem>
    </asp:DropDownList>

然后我用开关..

switch (DropDownList1.SelectedValue) 
{ 
    case "Confirm Order": 
        ... INSERT 
    break; 
    case "Tentative Order": 
        ...Insert 
    break;
}

但它给出了一个错误-

No mapping exists from object type System.Web.UI.WebControls.ListItem to a known managed provider native type.

正确的做法是什么?

4

6 回答 6

2

确保您正在使用:

DropDownList1.SelectedValue

或者

DropDownList1.SelectedItem.Value

或者

DropDownList1.SelectedItem.Text

在您的插入查询中。

(而不是 DropDownList1.SelectedItem - 这将给出 ListItem)

于 2012-08-14T11:40:47.713 回答
1

它应该是

switch (DropDownList1.SelectedItem.Text)
{
    //Rest Remains the same
}
于 2012-08-14T11:30:39.390 回答
0

我想问题是你正在将你的 DDL 映射到类“box”,并且在你的 switch/case 语句中你没有使用这个映射。

于 2012-08-14T11:34:23.303 回答
0

尝试使用:

DropDownList1.SelectedItem.Value
于 2012-08-14T11:41:45.040 回答
0

您可以将 ddl.SelectedItem.Value 作为参考并将值传递给所需的方法。

字符串 tempString = yourDDL.SelectedItem.Value

于 2012-08-14T11:44:11.097 回答
0

为什么不使用 ID 值,例如。

<asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem runat="server" Text="Confirm Order" Value="1"></asp:ListItem>
 </asp:DropDownList>

并切换

switch (DropDownList1.SelectedValue) 
{ 
    case "1": 
        ... INSERT 
}
于 2012-08-14T11:58:16.167 回答