我希望你已經找到了解決這個問題,以防萬一你沒有在這裏它是:
一個隱藏字段添加到頁面/用戶控制,其中評級控制是,例如。
下面的腳本塊添加到頁/用戶控制:
VAR ratingID = 「」; //評級控制的客戶ID var ratingClientID =「」; //評級控制的唯一ID var hfAverageRatingID =「」; //隱藏域ID
添加下面的代碼到一個外部js文件,然後在您的ScriptManagerProxy或ToolScriptManager控制引用它:
VAR等級;
Sys.Application.add_load(函數(){ $( 「ratingStars一個 」)點擊(函數(){ VAR AvgValue中= $(「 #」 + hfAverageRatingID).VAL(); 變種ratingValue = $ find(「RatingCtrl_RatingExtender」)。get_Rating(); //我們只想運行自定義代碼時的平均評級==選擇的評級 if(ratingValue == avgValue){ if((ratingValue < 0)| |(ratingValue> rating._maxRatingValue)){ 回報; } rating._update(); Sys.Extended.UI.RatingBehavior.callBaseMethod(評級, 'set_ClientState',[rating._ratingValue]); rating.raisePropertyChanged('Rating'); rating.raiseRated(rating._currentRating); rating._waitingMode(true); var args = rating._currentRating +「;」 + rating._tag; var id = rating._callbackID; // unique id - ctl00 $ cphMainContainer $ bjxRatings1 $ pageRating if(rating._autoPostBack){ __doPostBack(id,args); } else { WebForm_DoCallback(id,args,rating._receiveServerData,rating,rating._onError,true) } } }); $ create(Sys.Extended.UI。RatingBehavior,{「AutoPostBack」:true,「CallbackID」:ratingClientID,「ClientStateFieldID」:「RatingCtrl_RatingExtender_ClientState」,「id」:「RatingCtrl_RatingExtender」},null,null,$ get(ratingID)); rating = $ find(「RatingCtrl_RatingExtender」); });
一些有趣的注意的是,您發佈的鏈接已過時代碼,你不能在JavaScript中引用它從「AjaxControlToolkit」的新ajaxToolkit庫。相反,您必須在js文件中使用'Sys.Extended.UI'。
祝你好運, 肖恩
我沒有找到一個解決方案 - 但現在我已經暫時擱置該項目,所以還沒有真正觸及它最近。去標記這是答案,因爲它聽起來像可能工作,沒有人回答;) – merk 2012-05-28 09:48:24
嗨Merk,如果你有任何問題,當你試圖讓這個工作隨時聯繫我。 總體思路是,您要聽取評級控制點擊事件,並且只有當用戶選擇的值等於平均值(例如3)時纔會手動提交回傳。否則,你什麼也不做,並讓評級控制通常會提高它的回傳。 – pharophy 2012-05-31 19:42:55