0

我有一个包含文本和值的下拉列表。当我尝试从 Page.Request.Form["ID1"] 检索数据时,我得到的是值而不是文本..有没有办法我可以同时获得两者这些 。

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

谢谢

4

3 回答 3

0

有一种方法可以做到这一点。

在 web 控件的初始化期间,在后面的代码中,将下拉列表存储在成员变量中,以便您保留对它的引用,并在初始化期间填充它的 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
于 2014-11-14T15:16:01.667 回答
0

只有值回发到表单上

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

于 2013-04-11T18:05:24.553 回答
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();
于 2013-04-11T18:13:40.707 回答