2009/01/10

當TextBox Control 放入AJAX 的UpdatePanel後,無法正常觸發TextChanged事件?

因為 ASP.NET 2.0 既有的 Vlidators 有實作用戶端程式碼,會與 ASP.NET AJAX 的 UpdatePanel 不相容,微軟已經計劃會透過 Windows Update / Microsoft Updaet 更新 System.Web。

目前的解法:
1. 請下載 新版的 Validators(http://blogs.msdn.com/mattgi/attachment/1516974.ashx)
2. 解開壓縮檔,將 Validators.dll 複製到網頁應用程式的 bin 資料夾中
3. 開啟 Web.config,在 <system.web> 區段下的 <pages> 標籤中,加入如下的 <tagMapping> 設定:

<pages>
<
tagMapping>
<!--
ASP.NET & UpdatePanel搭配後發現原本的ASP.NET Validator有bug
故需更新Bin\Validator.dll元件,用來取代原始的ASP.NET的Validator.dll
請參考:
http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=1529953&SiteID=14&pageid=0
-->
<
add tagType="System.Web.UI.WebControls.CompareValidator" mappedTagType="Sample.Web.UI.Compatibility.CompareValidator, Validators, Version=1.0.0.0"/>
<
add tagType="System.Web.UI.WebControls.CustomValidator" mappedTagType="Sample.Web.UI.Compatibility.CustomValidator, Validators, Version=1.0.0.0"/>
<
add tagType="System.Web.UI.WebControls.RangeValidator" mappedTagType="Sample.Web.UI.Compatibility.RangeValidator, Validators, Version=1.0.0.0"/>
<
add tagType="System.Web.UI.WebControls.RegularExpressionValidator" mappedTagType="Sample.Web.UI.Compatibility.RegularExpressionValidator, Validators, Version=1.0.0.0"/>
<
add tagType="System.Web.UI.WebControls.RequiredFieldValidator" mappedTagType="Sample.Web.UI.Compatibility.RequiredFieldValidator, Validators, Version=1.0.0.0"/>
<
add tagType="System.Web.UI.WebControls.ValidationSummary" mappedTagType="Sample.Web.UI.Compatibility.ValidationSummary, Validators, Version=1.0.0.0"/>
</
tagMapping>
</
pages>

0 意見: