【问题标题】:How to get DataTextField(Content) of DropDownBox in ASP classic如何在 ASP 经典中获取 DropDownBox 的 DataTextField(Content)
【发布时间】:2015-07-06 20:24:44
【问题描述】:

我正在开发一个经典的 ASP Web 应用程序。我有下拉框,用户可以在其中选择多个项目并提交表单。现在我的要求是 如何获取 DropDownBox 的内容(需要将内容和值都插入到数据库表中,其中值是表 ID(主键))

例如

 <option value="1">ABC</option>
 <option value="2">XYZ</option>
 <option value="3">MNO</option>
 --------
 --------
 --------
 <option value="100">DEF</option>

用户提交页面后如何获取所选下拉项目的内容。

我可以通过写来获取值:item =request.form("data") 那么如何获取选中项的内容

【问题讨论】:

  • 您获取内容的方式与最初写出下拉列表的方式相同。 :)
  • 表单提交到其他表单,我正在将初始数据从数据库表加载到下拉框中
  • 因此您从表单中获取选定的索引,然后从数据库表中获取它们的值。就像我说的,与你最初生成它的方式相同。

标签: asp-classic


【解决方案1】:

对于多选列表框,Request.Form 将包含一个以逗号分隔的选定值列表。例如,如果选择了以下选项:

<option value="1">ABC</option>
<option value="3">MNO</option>

Request.Form(&lt;name of select element&gt;) 将包含:

1, 3

所以你可以通过Split() 的值来获取选定选项的数组:

a = Split(Request.Form("whatever"), ",")

For Each o In a
    Response.Write "Selected value = " & o & "<br>"
Next

编辑

听起来你需要做这样的事情:

<option value="1-ABC">ABC</option>
<option value="2-XYZ">XYZ</option>
<option value="3-MNO">MNO</option>

然后使用与上面发布的代码类似的代码以及o 上的Split() 将ID 与文本分开:

a = Split(Request.Form("whatever"), ",")

Dim o, id, text
For Each o In a
    id = Split(o, "-")(0)
    text = Split(o, "-")(1)

    Response.Write "Selected value = " & id & ", text = " & text & "<br>"
Next

【讨论】:

  • 谢谢。是的,你是对的,但我想要下拉列表的内容而不是值
  • 哦,我明白了。这有点不寻常。您通常会将要检索的任何值分配给 value 属性。您不能将文本值分配给value 属性吗? &lt;option value="ABC"&gt;ABC&lt;/option&gt; 如果您不打算将这些数字用于任何用途。
  • 我需要将这些数据(下拉列表的值和下拉列表的内容)插入到数据库表中,所以这里的值是表中的主键
  • 好的。我已经更新了我的答案。你认为这对你有用吗?
  • 酷。只需确保使用不会出现在您的文本/内容中的分隔符。破折号 (-) 可能不是最好的选择。
【解决方案2】:

经过反复检查,我认为无法使用 ASP Classic 的 request 对象从下拉项中获取文本。由于您包含 ASP.NET 标记,因此如果您使用它,则文本是控件的属性:

// Gets the value of the dropdown item
nameOfDropDown.SelectedItem.Value

// Gets the text of the dropdown item
nameOfDropDown.SelectedItem.Text

如果您需要 ASP Classic 的解决方法,您可以在下拉列表中使用与映射对象相同的数据填充数组。用户提交表单后,您可以使用请求的表单数据中返回的值对数组进行索引以检索文本值。

//Assuming VB when using ASP Classic
//Also assuming a method that returns the values for your dropdown
Dim dropDownArray() = MethodToReturnArrayOfDropDownText()

//Using your snippet for getting the dropdown value
Dim item = request.form("data")

//Use that value to get the text out of the array
Dim selectedText = dropDownArray(item)

请注意,根据支持数组的语言,您可能需要调整为基于 0 或 1 的数组。如果下拉菜单是多选的,您还必须遍历返回的表单数据。

【讨论】:

  • 非常感谢您的回复。如何以​​第二种形式访问数组
  • 您希望我将数组保存在会话对象中以供进一步访问还是有更好更有效的方法。
  • 如果您需要使用 ASP Classic,会话是保留该映射对象以供参考的最佳选择
  • 我想他错误地标记了 ASP.NET
猜你喜欢
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多