2007/02/10

RegisterClientScriptBlock 遇上 Postback

之前使用.NET裡面的ClientScript.RegisterClientScriptBlock
在PageLoad裡面使用他
以為他只要初始劃一次而已
所以就把這個註冊ClientScript的程式
用判斷isPostback包起來
導致只有第一次PageLoad會把Script註冊到前端
但是當我頁面上有其他的Postback後
他就不會把Script寫入前端
就會導致程式出錯
所以在使用此class的時候 要注意阿

標籤: ,

2007/02/06

Masterpage和CallBack使用上的小問題

最近在開始玩callback的機制

用.NET裡面的Page.ClientScript.Register***

的方式來產生前端的JavaScript

但是在使用 物件名稱.clientID 去產生JacaScript時

EX: 物件名稱為 Table1

由於ContentPage被包在MasterPage裡面

所以控制項在JavaScript裡面的名稱會變成 EX: ctl00_ContentPlaceHolder1_Table1

一開始的時候,因為HTML是由後端Render產生

所以不論是JavaScript或是網頁上的物件ID都會是 ctl00_ContentPlaceHolder1_Table1

自然Javascript抓得到,不會出錯;

但是當callback,把前端網頁修改之後

又把只動態產生的物件命名成 Table1

當callback替換掉網頁上的資訊後

前端的這個物件ID就不是叫做 ctl00_ContentPlaceHolder1_Table1

而會只是叫做 Table1

這時候 原本的Javascript就會因為抓不到物件而產生錯誤~~~

所以在MasterPage宇CallBack相互使用的時候,

就要留意此情況的發生,而造成錯誤....

標籤: