這個問題也是我在MSDN論壇回答過的。http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3125960&SiteID=14

 

Q :ListView裡面的各種樣版,以 ItemTemplate 與 AlternatingItemTemplate這兩個樣版最類似。

如果加上AJAX功能,在這兩個樣版內部,各自加上 UpdatePanel。

很奇怪的是----執行時,會出現錯誤訊息。說 [控制項ID重複?]

取消AJAX的UpdatePanel之後,又好了?真的很奇怪!

 

重新看了 ListView與SqlDataSource,自動幫我產生的樣版內容(HTML碼)。

沒錯。<ItemTemplate>與<AlternatingItemTemplate>,這兩個樣版的內容一模一樣啊

不光如此,ListView的各種樣版,裡面各種的 TextBox,ID都是一樣的

為何不會有錯?但加上AJAX的UpdatePanel就會出錯呢?

 

 

2009/11/27補充:   

關於本文,我撰寫了另外一個範例,請看:

[範例]AJAX與ListView的怪現象?#2 --各個樣版內,搭配專屬的 UpdatePanle,可行嗎?

 

 

 

...................................................................................................................................

 以下是廣告----

 

題名:   ASP.NET專題實務 

[廣告&團購] 新書上市-- ASP.NET專題實務(文魁出版)

本書目錄:http://www.kingsinfo.com.tw/item_detail.asp?pro_id=7085 

ISBN: 978-986-204-238-0 

著者: 周棟祥博士, 吳進魯

MIS2000 Lab. 編著 

 

審稿教授:南台科大 吳盛博士

出版者: 文魁資訊 http://www.kingsinfo.com.tw出版時間: 2008.07 
版次: 初版 裝訂: 平裝附光碟片 
分類號: 312.1695 標題: 網頁設計 , 全球資訊網 

 

 

 

A : 這問題很有趣,所以我也自己測試了一下。

手動去修改 ListView裡面,每個樣版內的 [控制項ID],不要重複就好了。我試過,可以正常執行

我個人的認知如下,未必正確。

       傳統POSTBACK的作法,一次只會啟動一個樣版,

       所以 ListView各種樣版底下的控制項ID,就算重複也無所謂。

       但改成AJAX之後,這時候,每一個控制項ID都必須獨一無二,

       不然的話,要怎麼知道是哪一個控制項啟動了非同步的POSTBACK?

 我覺得這說法,好像說得通

 

 

以上問答,是我在MSDN回答過的問題。http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3125960&SiteID=14

今天又看見它上了最常查詢問題的排行榜。

所以收錄回自己的BLOG裡面。這個範例,我也有收錄在自己寫的書裡面。

 

 


 

 

......  寄信給我    mis2000lab (at) 雅虎.com.台灣 ................................................................................................................
ASP.NET專題實務  (文魁出版,VB版 P8187 / C#版P09027

              下集已經出版囉~~~ASP.NET專題實務II:範例應用與4.0新功能

.............................................................................................................. 寄信給我    mis2000lab (at) 雅虎.com.台灣 ........