2012-01-29 25 views
1

我正在嘗試使用ajax工具包中的評級控制。目前我正在將電流設置爲該項目的平均評分。但是,這意味着沒有人可以選擇這個價值。例如 - 如果當前評級爲3,那麼沒有人能夠選擇3ajax工具包 - 評級控制 - 想要顯示當前評級並允許用戶選擇該值

我發現這個職位上的計算器問同樣的問題: Ajax control toolkit Rating Control- Override RatingBehavior.js

但我沒有任何運氣得到那工作。我猜是因爲這是一個3歲左右的舊帖子,從那時起,隨着評級控制,事情發生了變化。

所以 - 任何人都知道我可以如何顯示當前的評級,並仍然允許提交該值?

感謝

回答

0

我希望你已經找到了解決這個問題,以防萬一你沒有在這裏它是:

  1. 一個隱藏字段添加到頁面/用戶控制,其中評級控制是,例如。

  2. 下面的腳本塊添加到頁/用戶控制:

    VAR ratingID = 「」; //評級控制的客戶ID var ratingClientID =「」; //評級控制的唯一ID var hfAverageRatingID =「」; //隱藏域ID
  3. 添加下面的代碼到一個外部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'。

祝你好運, 肖恩

+0

我沒有找到一個解決方案 - 但現在我已經暫時擱置該項目,所以還沒有真正觸及它最近。去標記這是答案,因爲它聽起來像可能工作,沒有人回答;) – merk 2012-05-28 09:48:24

+0

嗨Merk,如果你有任何問題,當你試圖讓這個工作隨時聯繫我。 總體思路是,您要聽取評級控制點擊事件,並且只有當用戶選擇的值等於平均值​​(例如3)時纔會手動提交回傳。否則,你什麼也不做,並讓評級控制通常會提高它的回傳。 – pharophy 2012-05-31 19:42:55