Data binding 如何在经典ASP中以下拉方式显示存储过程中的数据?
这与经典的ASP代码有关。 页面获取特定项目代码的数据 有一个常规文本字段,显示选定项目代码的站点位置。我想将其更改为下拉,这样用户就可以从可用选项(从DB获取)中更改站点位置,然后保存它。此外,在页面加载时,应选择该特定条目的项目代码的站点位置 我已经在我的页面中添加了以下代码,但它不起作用(我对经典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
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>