2009-01-27 52 views
0

假设我的应用程序左侧有“默认”内容,它包含在标题页中:搜索框和登录框。如果用户在搜索页面上,我还想在页面的左侧添加搜索过滤器列表(例如品牌,价格);在这种情况下,左侧需要访问给予搜索的参数(例如,关键字搜索“黑色皮椅”);我在搜索页面search.asp上构建了一个相当复杂的查询,我宁愿不必在左侧内容页面上使用某种巨大的If..Then声明来复制它。我可以替换ASP(Classic)包含的内容吗?

有没有办法做到这一点,并将附加内容“追加”到已经包含在页面中的文件中?基本上像Ruby on Rails中的content_for,我可以在此页面上说,将这些东西添加到<div id="left">节点。我并不是真正的传统ASP专家(我宁愿不使用它,事实会被告知),但是我的老板只希望页面左侧的过滤器仅用于搜索页面,以及登录/搜索框(也出现在所有页面上),我不知道如何处理它,而不必重构整个页面。

回答

0

在ASP中,你可以抓住当前路径,并与本文件:

pagePath = Request.ServerVariables("PATH_INFO") 

可以分割字符串,抢到最后一个元素。因此,一个选择的情况下,并吐出了基于文件名相应的内容:

select case pageName 

case "search.asp" 
    ... 
case "products.asp" 
    ... 
case else 
    ... 
end select 
0

你可以很容易地在你想要的内容的左边设置div,然后使用客户端javascript切换DIV的可见性。

您的javascript可以检查当前位置,并且如果它位于想要该部分显示的页面列表内(以防您创建另一个搜索页面),请将可见性切换为true。

如果您不想在左侧渲染HTML,则可以使用Javascript动态地将HTML写入DIV。

或者,您可以在搜索页面中设置DIV,并使用CSS将其对齐到页面的左侧。

0

任何包括可以使用以前的功能收集的变量。例如,如果您先检索您的搜索关键字,那么您可以更新随后出现的任何代码中的值,即使在包含文件中也是如此,因为这些包含毕竟只是包含在整个页面中的更多代码,它已包含在插入中,因为它可能对其他页面是通用的。

或者您可以运行函数来处理这些变量,例如查找相关结果。

相关问题