2007/02/10
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相互使用的時候,
就要留意此情況的發生,而造成錯誤....