1

我正在尝试使用 ajax 工具包中的评级控件。我目前正在将 currentrating 设置为该项目的平均评级。但是,这意味着没有人可以选择该值。例如 - 如果当前评分为 3,则没有人可以选择 3。

我在 stackoverflow 上发现这篇文章问了同样的问题: Ajax control toolkit Rating Control- Override RatingBehavior.js

但我没有任何运气让它发挥作用。我猜是因为这是一篇旧帖子,大约有 3 年的历史,从那时起,随着评级控制,情况发生了变化。

所以 - 任何人都知道我如何显示当前评级并仍然允许提交该值?

谢谢

4

1 回答 1

0

我希望您已经找到了解决此问题的方法,以防万一您还没有找到它:

  1. 将隐藏字段添加到评级控件所在的页面/用户控件,例如。

  2. 将以下脚本块添加到页面/用户控件:

    var ratingID = ""; //评级控制的客户端 ID var ratingClientID = ""; //评分控制的唯一 ID var hfAverageRatingID = ""; //隐藏字段ID
  3. 将以下代码添加到外部 js 文件中,然后在 ScriptManagerProxy 或 ToolScriptManager 控件中引用它:

    var 评级;

    + 评级._tag; var id = rating._callbackID;// 唯一 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) ); 评级 = $find("RatingCtrl_RatingExtender"); }); _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) ); 评级 = $find("RatingCtrl_RatingExtender"); }); _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) ); 评级 = $find("RatingCtrl_RatingExtender"); }); : true, "CallbackID": ratingClientID, "ClientStateFieldID": "RatingCtrl_RatingExtender_ClientState", "id": "RatingCtrl_RatingExtender" }, null, null, $get(ratingID)); 评级 = $find("RatingCtrl_RatingExtender"); }); : true, "CallbackID": ratingClientID, "ClientStateFieldID": "RatingCtrl_RatingExtender_ClientState", "id": "RatingCtrl_RatingExtender" }, null, null, $get(ratingID)); 评级 = $find("RatingCtrl_RatingExtender"); });

值得注意的是,您发布的链接的代码已过时,使用较新的 ajaxToolkit 库,您无法从 javascript 中的“AjaxControlToolkit”引用它。相反,您必须在 js 文件中使用“Sys.Extended.UI”。

祝你好运,肖恩

于 2012-05-26T19:34:16.970 回答