Data binding 如何在经典ASP中以下拉方式显示存储过程中的数据?

Data binding 如何在经典ASP中以下拉方式显示存储过程中的数据?,data-binding,asp-classic,drop-down-menu,visual-studio-2003,Data Binding,Asp Classic,Drop Down Menu,Visual Studio 2003,这与经典的ASP代码有关。 页面获取特定项目代码的数据 有一个常规文本字段,显示选定项目代码的站点位置。我想将其更改为下拉,这样用户就可以从可用选项(从DB获取)中更改站点位置,然后保存它。此外,在页面加载时,应选择该特定条目的项目代码的站点位置 我已经在我的页面中添加了以下代码,但它不起作用(我对经典ASP是新手) strSQL=“SP\u GET\u SiteLocation” 设置rsSiteList=RunSQLQuery(strSQL) '显示列表 如果不是rsSiteList.EOF

这与经典的ASP代码有关。 页面获取特定项目代码的数据

有一个常规文本字段,显示选定项目代码的站点位置。我想将其更改为下拉,这样用户就可以从可用选项(从DB获取)中更改站点位置,然后保存它。此外,在页面加载时,应选择该特定条目的项目代码的站点位置

我已经在我的页面中添加了以下代码,但它不起作用(我对经典ASP是新手)

strSQL=“SP\u GET\u SiteLocation”
设置rsSiteList=RunSQLQuery(strSQL)
'显示列表
如果不是rsSiteList.EOF,则
做而不做
SiteLocationList=SiteLocationList&&rs(“位置”)&
下一个

此外,单击“保存”按钮时,我必须发送选定的下拉值以更新查询。

您对记录集变量使用了错误的名称

您将其命名为
rsSiteList
,但将其用作
rs

Do While NOT rsSiteList.EOF
    SiteLocationList= SiteLocationList & "<option value="">" & rsSiteList("LOCATION") & "</option>"
    rsSiteList.MoveNext 

更新2

不知道为什么您不想在从记录集中读取选项时打印它们,而是更喜欢制作一个巨大的字符串,并在末尾打印。。。这是一样的,但要干净得多

以下内容应选择与rsReqDetails(“AppReqSiteID”)匹配的位置



一般来说,您需要注意html的嵌套,因为它可能会把一切都搞糟。此外,您还需要了解一些ASP和HTML之间的交互…

您对记录集变量使用了错误的名称

您将其命名为
rsSiteList
,但将其用作
rs

Do While NOT rsSiteList.EOF
    SiteLocationList= SiteLocationList & "<option value="">" & rsSiteList("LOCATION") & "</option>"
    rsSiteList.MoveNext 

更新2

不知道为什么您不想在从记录集中读取选项时打印它们,而是更喜欢制作一个巨大的字符串,并在末尾打印。。。这是一样的,但要干净得多

以下内容应选择与rsReqDetails(“AppReqSiteID”)匹配的位置



一般来说,您需要注意html的嵌套,因为它可能会把一切都搞糟。另外,您还需要阅读一些关于ASP和HTML之间交互的内容…

您几乎了解了,但是您缺少了“选择”标记:

strSQL=“SP\u GET\u SiteLocation”
设置rsSiteList=RunSQLQuery(strSQL)
'显示列表
如果不是rsSiteList.EOF,则%>

您差一点就拿到了,您缺少了“选择”标签:

strSQL=“SP\u GET\u SiteLocation”
设置rsSiteList=RunSQLQuery(strSQL)
'显示列表
如果不是rsSiteList.EOF,则%>

是的,这显示下拉列表,但为空下拉列表:(是的,这显示下拉列表,但为空下拉列表:(@RMN,更新的答案…(您从未在页面中写入选项)谢谢Gaby。似乎我离它越来越近了。我不想将字段作为静态值添加。“位置”是我从存储过程中获得的值,我需要在下拉列表中使用该值。我添加了response.write(SiteLocationList)就在rsSiteList.MoveNext的上方,它在下拉列表中显示了3个条目,其余都在下拉列表外的一行中。另外,我希望在下拉列表中选择的值作为默认选择。@RMN,不要从循环内部打印SiteLocationList,因为您正在向其中添加选项,所以每次打印时,它都会打印所有选项增益增加1。。另外,什么是
?另一个记录集?应该用什么来检查该值?您的
rsSiteList
记录集是否在某处也有id值?是的,它是另一个记录集,否,rsSiteList没有id,它只有值(“位置”)。现在的场景是这样的:对于项目ID“122”,我在记录集“rsReqDetails”中有详细信息。项目122的“AppReqSiteID”是“Two”。我希望下拉列表显示“One”、“Two”、“Three”…默认情况下应选择“Two”。这个下拉列表是我们现在正在尝试修复的。如果我将选择更改为“One”,在单击“保存”按钮时,它应将更改保存到数据库中。好的,现在我可以看到下拉列表和其中的值,但如何在此下拉列表中显示所选值(即:)作为默认选择。@RMN,更新的答案..(您从未在页面中写入选项)谢谢Gaby。我似乎离它越来越近了。我不想将字段作为静态值添加。“位置”是我从存储过程中获得的值,我需要在下拉列表中使用它。我添加了response.write(SiteLocationList)就在rsSiteList.MoveNext的上方,它在下拉列表中显示了3个条目,其余都在下拉列表外的一行中。另外,我希望在下拉列表中选择的值作为默认选择。@RMN,不要从循环内部打印SiteLocationList,因为您正在向其中添加选项,所以每次打印时,它都会打印所有选项增益增加1。。另外,什么是
?另一个记录集?应该用什么来检查该值?您的
rsSiteList
记录集是否在某处也有id值?是的,它是另一个记录集,否,rsSiteList没有id,它只有值(“位置”)。现在的场景是这样的:对于项目ID“122”,我在记录集“rsReqDetails”中有详细信息。项目122的“AppReqSiteID”是“Two”。我希望下拉列表显示“One”、“Two”、“Three”…默认情况下应选择“Two”。这个下拉列表是我们现在正在尝试修复的。如果我将选择更改为“One”,在单击“保存”按钮时应将更改保存到数据库中。好的,现在我可以看到下拉列表和其中的值,但如何在此下拉列表中显示所选值(即:)作为默认选择。
<select name="somename"><%
    Do While NOT rsSiteList.EOF
   %>
       <option value=""><%=rsSiteList("LOCATION")%></option>
   <%
         rsSiteList.MoveNext 
     Loop
   %>
</select>
<td>
<%
  strSQL="SP_EPAPM_GET_SiteLocation"
  Set rsSiteList=RunSQLQuery(strSQL)
  selectedValue = rsReqDetails("AppReqSiteID")
  If Not rsSiteList.EOF Then
    Do While NOT rsSiteList.EOF
       loc = rsSiteList("LOCATION")
       if loc <> selectedValue then
         optionOpen = "<option>"
       else
         optionOpen = "<option selected=""selected"">"
       end if
       optionClose = "</option>"
       SiteLocationList=SiteLocationList & optionOpen  & rsSiteList("LOCATION") & optionClose 
      rsSiteList.MoveNext 
    Loop
  End If
  %>
  <select id="SiteLocationList" NAME="SiteLocationList">
    <%response.write(SiteLocationList)%>
  </select>
</td>
    strSQL = "SP_GET_SiteLocation"  
Set rsSiteList = RunSQLQuery(strSQL)  

'show the list  
If Not rsSiteList.EOF Then  %>
<select><%Do While NOT rs.EOF SiteLocationList= SiteLocationList & "<option value="">" & rs("LOCATION") & "</option>"  
rs.MoveNext %>
</select>