Is this a valid jquery callback function call?


Is this a valid jquery callback function call?



I executing a function like this,

<script type="text/javascript">         $(document).ready(function() {          getEntities("Clients/GetClients", 0, formatClientsResult);          var maxvalues = $("#HfId").val();         $(".pager").pagination(maxvalues, {             callback: getEntities("Clients/GetClients", formatClientsResult),             current_page: 0,             items_per_page: 5,             num_display_entries: 5,             next_text: 'Next',             prev_text: 'Prev',             num_edge_entries: 1         });      });   </script>  $(function() {     $.ajaxSetup({         contentType: 'application/json; charset=utf-8',         global: false,         async: false,         dataType: 'json',         beforeSend: function() { $('.loading').show(); },         complete: function() { $('.loading').hide(); }     }); });  function getEntities(url, currentPage, formatResultFunction) {     $.ajax({         url: url,         data: { 'currentPage': (currentPage + 1), 'pageSize': 5 },         success: function(data) {             if (data.isRedirect && data.isRedirect === true) {                 alert('must redirect to ' + data.redirectUrl);                 location = 'http://www.google.com';             }             else {                 var divs = '';                 $("#hfId").val('');                 $("#ResultsDiv").empty();                 $.each(data.Results, function() {                     divs += formatResultFunction(this);                 });                 $("#ResultsDiv").append(divs);                 $(".resultsdiv:even").addClass("resultseven");                 $(".resultsdiv").hover(function() {                     $(this).addClass("resultshover");                 }, function() {                     $(this).removeClass("resultshover");                 });                 $("#HfId").val("");                 $("#HfId").val(data.Count);              }         }     });     return false; }   function formatClientsResult(result) {     return '<div class="resultsdiv"><br /><span style="display: inline-block;width:220px;" class="resultName">' + result.ClientName + '</span><span class="resultfields" style="padding-left:10px;">Mobile No&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + result.ClientMobNo + '</span><span style="float:right; padding-right:2px;"><input type="checkbox" value=' + result.ClientId + ' onclick="storeIds();"/></span><br/><br/><span class="resultfields">Address&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + result.ClientAddress + '</span></div>'; } 

and i inspected through firebug i found my request was,

http://localhost:1115/0?currentPage=[object+HTMLDivElement]1&pageSize=5... Am i missing something...

When executing on initial load the request is,

http://localhost:1115/Clients/GetClients?currentPage=1&pageSize=5

This seems to work but Only the callback function fails...

I am using this jquery pagination plugin

As suggested by darin,

$(document).ready(function() {              getEntities("Clients/GetClients", 0, formatClientsResult);             var maxvalues = $("#HfId").val();             $(".pager").pagination(maxvalues, {                 callback: function() {                     getEntities("Clients/GetClients", 0, formatClientsResult);                 },                 current_page: 0,                 items_per_page: 5,                 num_display_entries: 5,                 next_text: 'Next',                 prev_text: 'Prev',                 num_edge_entries: 1             }); 

My controller action,

 public JsonResult GetClients(int currentPage, int pageSize)         {             if (Session["userId"]!=null)             {                 var clients = clirep.FindAllClients(Convert.ToInt32(Session["userId"])).AsQueryable();                 var count = clients.Count();                 var results = new PagedList<ClientBO>(clients, currentPage - 1, pageSize);                 var genericResult = new { Count = count, Results = results ,isRedirect=false};                 return Json(genericResult);             }             else             {                 var genericResult = new {redirectUrl = Url.Action("Create", "Registration"), isRedirect = true };                 return Json(genericResult);             }          } 

And my model,

public IQueryable<ClientBO> FindAllClients(int userId)         {             var client = from c in taxidb.Clients                          where c.CreatedBy == userId && c.IsDeleted == 0                           select new ClientBO()                          {                              ClientId = c.ClientId,                              ClientName= c.ClientName,                              ClientMobNo= Convert.ToString(c.ClientMobNo),                              ClientAddress= c.ClientAddress                          };             return client;         } 

and my view,

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TaxiMVC.Models.Client>" %>  <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">     Index </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">     <h2>         Clients</h2>     <input type="hidden" id="hfId" />     <input type="hidden" id="hfEditId" />     <div id="ErrorDiv">     </div>     <div id="ImageButtonDiv">         <input type="button" class="addbuttons" onclick="return showadd();" />         <input type="button" class="editbuttons" onclick="if(editdetails()){return getClientbyId($('#hfId').val());}" />         <input type="button" class="deletebuttons" onclick="if(deletedetails()){return deleteClients($('#hfId').val());}" />     </div>     <div id="ResultsDiv">     </div>     <div id="PagerDown" class="pager">     </div>     <div id="adddiv" style="display: none;">         <form id="addform" autocomplete="off" action="">         <fieldset>             <legend>Client Details</legend>             <table cellpadding="0" cellspacing="0" width="100%">                 <tr>                     <td class="tdfields" style="width: 25%; padding-right: 20px;" align="right">                         Client Name&nbsp;:                     </td>                     <td style="width: 20%;">                         <%= Html.TextBox("Name", null, new { @class = "text_box_height_14_width_150" })%>                         &nbsp;                     </td>                     <td style="width: 55%;" class="status">                         &nbsp;                     </td>                 </tr>                 <tr>                     <td class="tdfields" style="width: 25%; padding-right: 20px;" align="right">                         Mobile No&nbsp;:                     </td>                     <td style="width: 20%;">                         <%= Html.TextBox("MobileNo", null, new { @class = "text_box_height_14_width_150" })%>                         &nbsp;                     </td>                     <td style="width: 55%;" class="status">                         &nbsp;                     </td>                 </tr>                 <tr>                     <td class="tdfields" style="width: 25%; padding-right: 20px;" align="right">                         Address&nbsp;:                     </td>                     <td style="width: 20%;">                         <%= Html.TextArea("Address", null, 6, 42, new { @class = "multiline_text_box_height_14_width_200" })%>                         &nbsp;                     </td>                     <td style="width: 55%;" class="status">                         &nbsp;                     </td>                 </tr>                 <tr>                     <td colspan="2" align="center">                         <div class="form-submit">                             <input type="submit" value="Submit" id="submit" />                             &nbsp;&nbsp;<input type="button" value="Cancel" id="cancel" onclick="return showResultsdiv();" />                         </div>                     </td>                     <td>                     </td>                 </tr>             </table>         </fieldset>         </form>     </div>     <input id="HfId" type="hidden" />      <script type="text/javascript">         $(document).ready(function() {             //        getClients(0);             getEntities("Clients/GetClients", 0, formatClientsResult);             var maxvalues = $("#HfId").val();             $(".pager").pagination(maxvalues, {                 callback: function() {                     getEntities("Clients/GetClients", 0, formatClientsResult);                 },                 current_page: 0,                 items_per_page: 5,                 num_display_entries: 5,                 next_text: 'Next',                 prev_text: 'Prev',                 num_edge_entries: 1             });              var validator = $("#addform").validate({                 rules: {                     Name: "required",                     MobileNo: {                         required: true,                         number: true,                         minlength: 10                     },                     Address: "required"                 },                  messages: {                     Name: "please provide a client name",                     MobileNo: {                         required: "Please provide a mobile phone no",                         number: "Please provide a mobile phone no",                         rangelength: jQuery.format("Enter at least {0} characters")                     },                     Address: "please provide client address"                 },                 // the errorPlacement has to take the table layout into account                 errorPlacement: function(error, element) {                     error.appendTo(element.parent().next());                 },                 // set this class to error-labels to indicate valid fields                 success: function(label) {                     // set &nbsp; as text for IE                     label.html("&nbsp;").addClass("checked");                 },                  submitHandler: function(form) {                     if ($("#hfEditId").val() == "") {                         $.ajax({                             url: "Clients/ClientCreate",                             data: { 'clientName': $("#Name").val(), 'clientMobNo': $("#MobileNo").val(), 'clientAddress': $("#Address").val() },                             contentType: "application/json; charset=utf-8",                             global: false,                             async: false,                             dataType: "json",                             beforeSend: function() { $('.loading').show(); },                             complete: function() { $('.loading').hide(); },                             success: function(data) {                                 if (data.Result == "Success") {                                     $("#hfEditId").val('');                                     $("#addform").clearForm();                                     getEntities("Clients/GetClients", 0, formatClientsResult);                                     $("#adddiv").hide();                                     $("#ResultsDiv").show();                                     $("#PagerDown").show();                                     $("#ImageButtonDiv").show();                                     var maxvalues = $("#HfId").val();                                     $(".pager").pagination(maxvalues, {                                         callback: getEntities("Clients/ClientCreate", 0, formatClientsResult),                                         current_page: 0,                                         items_per_page: 5,                                         num_display_entries: 5,                                         next_text: 'Next',                                         prev_text: 'Prev',                                         num_edge_entries: 1                                     });                                     $("#alert").remove();                                     topBar('successfully added');                                     return false;                                 }                             }                         });                     }                     else {                         $.ajax({                             url: "Clients/Clientupdate",                             data: { 'clientId': $("#hfEditId").val(), 'clientName': $("#Name").val(), 'clientMobNo': $("#MobileNo").val(), 'clientAddress': $("#Address").val() },                             contentType: "application/json; charset=utf-8",                             global: false,                             async: false,                             dataType: "json",                             beforeSend: function() { $('.loading').show(); },                             complete: function() { $('.loading').hide(); },                             success: function(data) {                                 if (data.Result == "Success") {                                     $("#hfEditId").val('');                                     $("#addform").clearForm();                                     getEntities("Clients/GetClients", 0, formatClientsResult);                                     $("#adddiv").hide();                                     $("#ResultsDiv").show();                                     $("#PagerDown").show();                                     $("#ImageButtonDiv").show();                                     var maxvalues = $("#HfId").val();                                     $(".pager").pagination(maxvalues, {                                         callback: getEntities("Clients / Clientupdate", 0, formatClientsResult),                                         current_page: 0,                                         items_per_page: 5,                                         num_display_entries: 5,                                         next_text: 'Next',                                         prev_text: 'Prev',                                         num_edge_entries: 1                                     });                                     $("#alert").remove();                                     topBar('successfully updated');                                     return false;                                 }                             }                         });                     }                 }             });         });      </script>  </asp:Content> 

MVC HandleError attribute not working on Controller

1:

What is the elegant solution for unrelated views in MVC web frameworks?
The receive Entities function expects 3 arguments. Setting width and height of modal window from JavaScript/JQuery to ASP.NET MVC inline codeHere you are passing only 2: . How can I implement a label file for regions that integrates well with MVC application structure?
callback: receive Entities("Clients/GetClients", formatClientsResult) 
Also the second argument needs to be an integer and not ananother function. How asp.net MVC's cache and Firefox's cache work?And as it is a callback it needs to be defined as such:. Is the MVC Controller Layer the ideal place for error handling?
callback: function() {     receive Entities("Clients/GetClients", 0, formatClientsResult); } 
UPDATE:. asp.net mvc: read route param inside controller The reason you are always receive ting the same AJAX request is this you always pass 0 to the receive Entities function in the pagination callback. How can I close one jQuery UI Dialog and focus on another?. Try this:.
$(".pager").pagination(maxvalues, {     callback: function (new_page_index, pagination_container) {         // Notice how the new_page_index is passed         receive Entities("home/GetClients", new_page_index, formatClientsResult);     },     current_page: 0,     items_per_page: 5,     num_display_entries: 5,     next_text: 'Next',     prev_text: 'Prev',     num_edge_entries: 1 }); 

2:

The callback of the pagination plugin here which I assume you are using is defined internally as.
opts.callback(current_page, containers); 
This is different to the signature of your callback so no it will not job the same..

3:

Apparently the currentPage parameter of receive Entities() is an object, so adding 1 to it is not a sensible operation. Check with firebug what the type and contents of currentPage is..

4:

Try this:.
    $(document).ready(function() {         var helper = function() {             receive Entities("Clients/GetClients", 0, formatClientsResult);         };         helper();         var maxvalues = $("#HfId").val();         $(".pager").pagination(maxvalues, {             callback: helper,             current_page: 0,             items_per_page: 5,             num_display_entries: 5,             next_text: 'Next',             prev_text: 'Prev',             num_edge_entries: 1         }); 


63 out of 100 based on 68 user ratings 223 reviews

@