天天看點

用戶端獲得伺服器控件的ID

在用戶端的javascript腳本裡,想操作伺服器控件時,先要得到控件的引用。一般先獲得伺服器控件的在web頁中的ID,通過調用documnet 對象的方法,就可以獲得伺服器控件的引用。

如:在網頁定義了一個伺服器控件

<asp:DropDownList id="EquipmentList" runat="server" Width="96px"></asp:DropDownList>

然後在腳本中可通過語句 var list=document.getElementById("EquipmentList"); 獲得了控件的引用,然後就可以操作控件了,如:list.options.length=3; 也可以使用 document.all["EquipmentList"].options.length=3;   一句實作。剛剛學web開發,一直這麼用沒啥問題。

遇到問題: 定義了一個使用者控件,使用者控件裡面包含包含若幹伺服器控件,在使用者控件中寫腳本控制伺服器控件。仍然按照 上面的方法做,出錯。提示是:document.getElementById("EquipmentList") 為空或不是對象,說明沒有找到EquitmentList 控件,沒有獲得引用。經求教得知,使用者控件放在網頁上時,其内部的伺服器控件的ID會改變,不是在使用者控件中定義的那個ID了。 要獲得這個ID 要用如下語句:<%=伺服器控件名.ClientID%>  ,修改使用者控件中腳本代碼,用:<%=伺服器控件名.ClientID%> 替換原來的ID,如:

var list=document.getElementById("EquipmentList");  換為 var list=document.getElementById("<%=EquipmentList.ClientID%>"); 這樣代碼運作成功。

繼續閱讀