2

Hi i started working on JQgrid, and it works fine for add,search and all, but when i delete the record its fetching me the error as my post says. its not entering to the delete and edit controller action itself, i checked by putting break points in there. My code looks like View {

  <table id="jQGridDemo">
    </table>
    <div id="jQGridDemoPager">
    </div>
    <script type="text/javascript">
          jQuery("#jQGridDemo").jqGrid({
              url: 'RTGUser/GetUserDetails',
              datatype: "json",
              colNames: ['Id', 'Name', 'Designation', 'City'],
              colModel: [
             { name: 'Id', index: 'Id', width: 40, align:'center', sortable: true, editable:false},
              { name: 'Name', index: 'Name', width: 40, align: 'center', sortable: true, editable: true, edittype: 'text', editrules: { required: true} },
              { name: 'Designation', index: 'Designation', width: 400, align: 'center', sortable: true, editable: true, edittype: 'text', editrules: { required: true} },
              { name: 'City', index: 'City', width: 150, align: 'center', sortable: true, editable: true, edittype: 'text', editrules: { required: true} }
              ],

            mtype: 'POST',
            loadonce: true,
            rowList: [5,10, 20, 30],
            pager: '#jQGridDemoPager',
            sortname: 'Id',
            viewrecords: true,
            sortorder: 'desc',
            caption: "List Of Users"

        });

        jQuery("#jQGridDemo").jqGrid('navGrid', '#jQGridDemoPager',
      { edit: true, add: true, del: true, search:true },
           { url: "/RTGUser/EditUser", closeAfterEdit: true, beforeShowForm: function (formid) { $("#Id", formid).hide(); } },
           { url: "/RTGUser/AddNewUser", closeAfterAdd: true, beforeShowForm: function (formid) { $("#Id", formid).hide(); } },
           { url: "/RTGUser/DeleteUser" }, {});

        $("#search").filterGrid("#grid", {
            gridModel: false,
            filterModel: [{
                label: 'Search',
                name: 'search',
                stype: 'text'
            }]
        });

    </script>
</body>

}

and my controller looks like {

   public ActionResult EditUser(int userId, string name, string desig, string city)
        {
            try
            {
                var query = from u in db.Users
                            where u.Id.Equals(userId)
                            select u;

                var user = query.First();
                user.Name = name;
                user.Designation = desig;
                user.City = city;
                db.SaveChanges();

                return Json(true);
            }
            catch (Exception)
            {
                // Do some error logging stuff, handle exception, etc.
                return Json(false);
            }
        }

  public ActionResult DeleteUser(int userId)
        {
            try
            {
                var query = from u in db.Users
                            where u.Id.Equals(userId)
                            select u;

              //  var user = query.First();
                var usr = db.Users.Find(Convert.ToInt32(userId));
                db.Users.Remove(usr);
                db.SaveChanges();

                return Json(true);
            }
            catch (Exception e)
            {
                // Do some error logging stuff, handle exception, etc.
                Response.Write(e);
                return Json(false);
            }
}

} please suggest me the way to solve this.

A Coder
  • 3,039
  • 7
  • 58
  • 129
Nandish Hosmane
  • 107
  • 2
  • 18

1 Answers1

0

Use Firefox/Firebug or the IE8 developer tools to look at the actual response you are getting from the server. On what line does it fall over? Once you find out, you'll probably find your error.

PhilGibson
  • 72
  • 8