使用表单检索下拉列表值

时间:2013-04-11 18:00:50

标签: asp.net

我有一个包含文本和值的下拉列表。当我尝试从Page.Request.Form [“ID1”]中检索数据时,我得到的是值而不是文本..我有办法吗?得到这两个。

<select id="ID1">
<option Value="1">
Test
</option>
<Option Value="2">
Test2
</Option>
</select>

由于

3 个答案:

答案 0 :(得分:0)

只有值会在表单上回复

使用该值,您可以在viewstate上找到列表中需要保存/保留的文本,或者将其保存在下拉列表框中。如果您不能使用它们,那么另一个解决方案是保留您希望获得的所有数据,并在以后拆分它们。

答案 1 :(得分:0)

根据标准更改答案

我有点把它写在袖口上,所以如果有语法错误我会道歉 - 希望你能得到一般的想法

由于您可以控制客户端..您可以像这样传递表单文本/值

<select name="mySelect">
<option value="myName1:myValue1">myName1</option>
<option value="myName2:myValue2">myName2</option>
<option value="myName3:myValue3">myName3</option>
</select>

然后......服务器端你可以做这样的事情......

var mySelect = Page.Request.Form["mySelect"].ToString();
var myText = mySelect.Split(":".ToCharArray()).First();
var myValue = mySelect.Split(":".ToCharArray()).Last();

答案 2 :(得分:0)

有一种方法可以做到。

在初始化webcontrol期间,在后面的代码中,将下拉列表存储在成员变量中,以便保留对它的引用,并在初始化期间填充它的Items集合。

然后在初始化期间使用Request.Form(ddl.UniqueID)获取回发值(密钥)。

使用键在下拉列表中查找项目,例如

dim selectedValue as string = Request.Form(ddl.UniqueID)
dim theItem as ListItem = Nothing
If Not IsNothing(ddl.Items.FindByValue(selectedValue)) Then
  theItem = ddl.Items.FindByValue(selectedValue)
  dim strText as string = theItem.Text
End If