母版頁帶來的問題

 套用母版頁之後,生成的HTML代碼是有些特殊的:

查看源文件,可以看到源文件控件元素的ID和生成HTML文件的ID不一致。
表單from的name屬性和id屬性變成了aspnetForm,控件的id屬性被無緣無故了加上了ctl00_ContentPlaceHolder1_前綴,其name屬性也加上了ctl00$ContentPlaceHolder1$前綴。

那麼如果使用'document.getElementById()就會出現“爲空或不是對象”的錯誤。

解決方法:

function insert() {
document.getElementById("ctl00$ContentPlaceHolder1$txt").value=document.getElementById("ctl00$ContentPlaceHolder1$txt").value+"(__)";
return;
}
//或者
function insert() {
document.getElementById("ctl00_ContentPlaceHolder1_txt").value=document.getElementById("ctl00_ContentPlaceHolder1_txt").value+"(__)";
return;
}

其實分析一下,它是後來生成的客戶端id,我們可以用C#語句Control的ClientID屬性,像這樣寫:txt.ClientID; txt還是原來控件的id,後面的ClientID就是新生成的id。txt.ClientID是從程序裏取到的後來生成新的id,這樣不是更好嗎。修改代碼如下:

  function insert() {
document.getElementById("").value=document.getElementById("").value+"(__)";
return;
}

 

 

整理自網絡

發佈了16 篇原創文章 · 獲贊 1 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章