<asp:DropDownList ID="MotorcadeDropDownList" runat="server" Style="width: 100px"
DataSourceID="MotorcadeNameODS" DataTextField="MotorcadeName"
DataValueField="MotorcadeID">
</asp:DropDownList>
<asp:ObjectDataSource ID="MotorcadeNameODS" runat="server" SelectMethod="GetMotorcades"
TypeName="BLL.Motorcade"></asp:ObjectDataSource>
就上面的几行代码,页面显示的是可以下拉选取MotorcadeName的值,但是我想在提交服务器时获取的是ID值(MotorcadeID),并将其插入到另一张表中,作为外键关联,可是不知道怎么在后台获取已经绑定好了的DropDownList的DataValueField所绑定的ID值,很急啊
DropDownList1.SelectedValue
是这个吗
1楼的回答正确。
int result = int.Parse(MotorcadeDropDownList.SelectedValue);
int result2 = int.Parse(MotorcadeDropDownList.SelectedItem.Value);
string Text=MotorcadeDropDownList.SelectedItem.Text;
这两个int值就是你要的值。你看看你浏览时的页面的源代码。
你数据绑定后的页面源代码应该类似于这样:
<select name="MotorcadeDropDownList" id="MotorcadeDropDownList">
<option value="2">名称2</option>
<option value="3">名称3</option>
<option value="4">名称4</option>
<option value="5">名称5</option>
</select>
其中,value就是你要的值,不是吗?
前面的两个int值就是这个value
可以做个简单的测试
<asp:DropDownList ID="MotorcadeDropDownList" runat="server" >
<asp:ListItem Value="2">名称2</asp:ListItem>
<asp:ListItem Value="3">名称3</asp:ListItem>
<asp:ListItem Value="4">名称4</asp:ListItem>
<asp:ListItem Value="5">名称5</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnGet" runat="server" OnClick="btnGet_Click" Text="getSelect" />
<asp:Label ID="lbResult" runat="server" Text="0"></asp:Label>
<head runat="server">
<title>UrlToHtml</title>
<script type="text/C#" runat="server">
void btnGet_Click(object sender, EventArgs e)
{
int result = int.Parse(MotorcadeDropDownList.SelectedValue);
int result2 = int.Parse(MotorcadeDropDownList.SelectedItem.Value);
string Text=MotorcadeDropDownList.SelectedItem.Text;
lbResult.Text ="你选择的ID是:" +result.ToString() + "/" + result2.ToString()+"<br/>你选择的文本是:"+Text;
}
</script>
</head>
DropDownList1.SelectedValue 应该是正确的,
你可能理解错了,
DropDownList1.SelectedValue 获取的就是绑定的“ID”。
DropDownList1SelectItem .Text才是获取“MotorcadeName” 的写法。
@Ecin: 怎么解决的跟我讲下,我也遇到这个问题