套用母版頁之後,生成的html**:
以下是引用片段: "> " >
是不是看到問題了,原始檔控制項元素的id和生成html檔案的id不一致。表單from的name屬性和id屬性變成了aspnetform,控制項的id屬性被無緣無故了加上了ctl00_contentplaceholder1_字首,其name屬性也加上了ctl00$contentplaceholder1$字首。
這下知道了,難怪提示「'document.getelementbyid(...)' 為空或不是物件」的錯誤了,原來生成頁面後其id都變了。
1. 在asp.net 4.0 中我們可以控制輸出html中的物件id的形式了,之前我們常常看到類似這樣的id
ctl00_maincontent_txtautoid
這在客戶端控制時很不方便,也沒有多少實質的意義
現在我們可以通過設定控制項的clientidmode修改clientid的輸出形式,例如下面**:
1 2 3 4
將分別輸出
1 2 3 4
autoid: 自動輸出和之前版本輸出的clientid一樣
static:輸出和server端指定的id一樣的id
predictable:對於datagrid,listview特別有用,使clientid值格式象clientidrowsuffix一樣;
inherit:這個值指定控制項象它的父物件一樣產生id,即我們常說的繼承。
2. asp.net4.0 提供了乙個叫做 viewstatemode 的新屬性,這個屬性可以單獨設定控制項的檢視狀態。在以前版本的 asp.net 中,控制項的檢視只有在 page 的 viewstate 啟用的前提下才可以單獨控制。在 asp.net4.0 中,控制項的檢視狀態可以單獨設定了,也就是說,即使頁面的檢視狀態沒有啟用,控制項依然可以啟用檢視狀態。
viewstatemode 屬性有三種取值:
inherit:檢視狀態從父控制項繼承;
enabled:即使父控制項的檢視狀態沒有啟用,也啟用該控制項的檢視狀態;
disabled:即使父控制項的檢視狀態啟用了,也禁用此控制項的檢視狀態。
控制項伺服器端伺服器控制項與客戶端控制項
在寫這篇文章之前,已經寫過了幾篇關於改控制項伺服器端主題的文章,想要了解的朋友可以去翻一下之前的文章 伺服器控制項的 在伺服器端解釋執行,生成根據使用者的瀏覽器而定的html元素。客戶端控制項由客戶端瀏覽器解釋執行。伺服器控制項需要回發執行,當初次開啟頁面時,需初始化。伺服器端控制項是由runat屬...
伺服器端控制項與客戶端控制項的區別
伺服器控制項的 在伺服器端解釋執行,生成根據使用者的瀏覽器而定的html元素。客戶端控制項由客戶端瀏覽器解釋執行。伺服器控制項需要回發執行,當首次開啟頁面時,需初始化。伺服器端控制項是由runat屬性指示的,runat的值有且僅為一值 server 通過新增runat屬性,一般的html控制項可以被...
socket伺服器端
伺服器 include winsock2.h include string.h include stdio.h include time.h include stdarg.h include stdlib.h pragma comment lib,ws2 32 void errexit const ...