2014-11-23 12 views
0

我的網頁上有一個Telerik RadRating控件。發送RadRating值到服務器使用Jquery

<telerik:RadRating ID="RadRating1" runat="server" AutoPostBack="false" Enabled="true" Precision="Exact" OnClientRating="Rating_ClientRating"> 
</telerik:RadRating> 

可以看出,當用戶通過選擇星星點擊控制和速率時,我正在調用客戶端功能。客戶端功能如下所述,

function Rating_ClientRating(sender, args) { 
     var newValue = args.get_newValue(); 
     var oldValue = sender.get_value(); 
} 

現在我可以成功訪問新舊值。現在,我需要通過JQuery的阿賈克斯後的價值,我的客戶端功能,一旦變成這樣,

function Rating_ClientRating(sender, args) { 
     var newValue = args.get_newValue(); 
     var oldValue = sender.get_value(); 

     var postdata = new Object(); 
     postdata.newValue = newValue; 
     postdata.oldValue = dealid; 

     $.ajax(
       { 
        type: "POST", 
        url: "Posts.aspx/RatePost", 
        data: JSON.stringify(postdata), 
        contentType: "application/json", 
        dataType: "json", 
        async: "true", 
        cache: "false", 
        success: OnSuccess, 
        failure: function (response) { 
         alert("Failure: " + response.d); 
        }, 
        error: function (response) { 
         alert("Error: " + response.d); 
        } 
       }); 
    } 

現在我添加了$就到功能RadRating停止工作。工具提示可以正確顯示,並且星星可以在鼠標上方填充,但是我點擊任何星星,那麼它就不會被選中。難道我做錯了什麼?

回答

0
  1. 如果你沒有明確提及jQuery的變量$將拋出一個空引用

  2. 的dealid變量是不確定的,這將拋出一個錯誤

下面是一個例子爲我產生了一個請求:

  function Rating_ClientRating(sender, args) { 
      var newValue = args.get_newValue(); 
      var oldValue = sender.get_value(); 

      var postdata = new Object(); 
      postdata.newValue = newValue; 
      postdata.oldValue = oldValue; 

      $telerik.$.ajax(
        { 
         type: "POST", 
         url: "Posts.aspx/RatePost", 
         data: JSON.stringify(postdata), 
         contentType: "application/json", 
         dataType: "json", 
         async: "true", 
         cache: "false", 
         success: OnSuccess, 
         failure: function (response) { 
          alert("Failure: " + response.d); 
         }, 
         error: function (response) { 
          alert("Error: " + response.d); 
         } 
        }); 
      } 

      function OnSuccess() { 

      } 
+0

感謝您的幫助。它仍然沒有工作。我在同一頁面上有另一個Javascript函數,它也調用了服務器端函數。我已經把這個函數放在document.ready中。但是當我在document.ready中放入同樣的方法時,我的RadRating控件被禁用。如果我把它放在document.ready之外,那麼除了ajax調用不起作用外,一切正常。 – 2014-11-25 17:11:47

+0

你有任何腳本錯誤?你檢查過你的控制檯嗎?所有請求是否都成功返回此頁面?如果我們無法重現您的問題,我們無法給您一個解決方案。 – rdmptn 2014-11-26 08:04:06