AJAX与ListView的怪现象? --样版内,控件ID重复的问题
http://www.dotblogs.com.tw/mis2000lab/archive/2008/05/16/4015.aspx
这个问题也是我在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案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)
A : 这问题很有趣,所以我也自己测试了一下。
手动去修改 ListView里面,每个样版内的 [控件ID],不要重复就好了。
我试过,可以正常执行
我个人的认知如下,未必正确。
传统POSTBACK的作法,一次只会启动一个样版,
所以 ListView各种样版底下的控件ID,就算重复也无所谓。
但改成AJAX之后,这时候,每一个控件ID都必须独一无二,
不然的话,要怎么知道是哪一个控件启动了异步的POSTBACK?
我觉得这说法,好像说得通
以上问答,是我在MSDN回答过的问题。http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3125960&SiteID=14
今天又看见它上了最常查询问题的排行榜。
所以收录回自己的BLOG里面。这个范例,我也有收录在自己写的书里面。