2009-01-27 49 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

任何包括可以使用以前的功能收集的變量。例如,如果您先檢索您的搜索關鍵字,那麼您可以更新隨後出現的任何代碼中的值,即使在包含文件中也是如此,因爲這些包含畢竟只是包含在整個頁面中的更多代碼,它已包含在插入中,因爲它可能對其他頁面是通用的。

或者您可以運行函數來處理這些變量,例如查找相關結果。

相關問題