2012-02-03 33 views
2

從外部JavaScript文件中,我需要檢查IsPostBack(ASP.NET頁面)。以下是我在Google上搜尋後發現:檢查外部JavaScript文件中的IsPostBack

var isPostBack = <%= Page.IsPostBack ? "true" : "false" %>; 

<%=%>似乎並不在外部JS文件得到認可。如果是這樣,那麼備用解決方案是什麼?

回答

3

您將無法從外部文件執行此操作。即使可以,外部文件也會緩存在客戶端的瀏覽器中,並且每次都不會被拉取。您可能可以在頁面中放置一個函數並從外部腳本中調用它。

外部腳本

if(isAPostBack) 
{ 
//run code 
} 

ASPX頁面(腳本中頭)

var isAPostBack = <%= Page.IsPostBack %>; 

只要確保你的外部腳本獲取網頁上線後裝入。

3

對於要處理的ASP代碼,您需要有一個文件擴展名,它映射到IIS中的ASP DLL。

這裏最簡單的情況是使用.aspx擴展名重命名.js文件,然後更改<script>元素的src屬性。

另外,全球範圍內創建isPostBack變量在aspx頁面,然後打電話給你的js文件,其中包含它的用法,如:

<script type="text/javascript"> 
    var isPostBack = <%= Page.IsPostBack ? "true" : "false" %>; 
</script> 
<script type="text/javascript" src="/js/myscript.js"></script> <!-- <- script that uses isPostBack --> 
+2

將擴展名更改爲aspx將無法正常工作,因爲當從腳本標記加載頁面(腳本)時,即使父頁面具有「isPostBack == true」,isPostBack將始終爲「false」。 -1,但爲你的替代解決方案+1。網絡投票= 0. – gilly3 2012-02-03 20:14:32

+0

@ gilly3關於變量總是在腳本標記爲假的好處 - 我的不好。很高興我至少打破了即使:) – 2012-02-03 22:08:49

0

你不能在一個外部JavaScript文件中使用<%= %>符號;不起作用。

0

這將不會在JavaScript文件中工作,導致服務器將爲此服務,並且不會識別asp標籤。但是,您可以從aspx文件中執行此操作,並且它可以工作。您也可以使用通用處理程序。

祝你好運!

0

您只能通過頁面上使用的aspx頁面或用戶控件或主頁面來渲染此variable