title: jqGrid selects row only once, subsequently cannot select any other row, grid stuck
body: <p>I've got a jqGrid along with a jquery UI button toolbar. My toolbar consists of View &amp; Edit Mode. In my jqGrid onSelectRow I check edit mode with method isInEditMode. This returns true if the button with ui-active-state is edit button.</p>
  
  <p>My grid seems loads correctly, and hover classes turn on/off as a drag my mouse over the rows. If I'm not in edit mode and click a row it does other functionality, which is correct. But when isInEditMode returns true it only seems to allow onSelectRow to fire ONCE.</p>
  
  <p>Many thanks for all the help.</p>
  
  <pre><code>var lastselTsg;
  
  grid.jqGrid({
          colNames: ['BudgetId', 'BudgetAccountId', 'Account #', 'Name', 'Cost', 'StaticRowId', 'SortOrder'],
          colModel: [
              { name: 'BudgetId', index: 'BudgetId', hidden: true, edithidden: true },
              { name: 'BudgetAccountId', index: 'BudgetAccountId', hidden: true, edithidden: true },
              { name: 'AccountNumber', index: 'AccountNumber', sortable: false, width: 70 },
              { name: 'BudgetName', index: 'BudgetName', sortable: false, width: 230, editable: true, edittype: 'text', editoptions: {
                  defaultValue: "",
                  dataInitInit: function (el) {
                      var value = $(el).val();
  
                      value = value.replace("&lt;strong&gt;", "");
                      value = value.replace("&lt;/strong&gt;", "");
  
                      $(el).val(value);
                      $(el).focus();
  
                      if (value == "") {
                          $(el).remove();
  
                          return false;
                      }
  
                  }
              }
              },
              { name: 'TotalCost', index: 'TotalCost', sortable: false, formatter: totalCurrencyFormatter, width: 100 },
              { name: 'StaticRowId', index: 'StaticRowId', sortable: false, hidden: true, edithidden: true },
              { name: 'SortOrder', index: 'SortOrder', sortable: false, hidden: true, edithidden: true }
          ],
          pager: pager,
          pgbuttons: false,
          pginput: false,
          rowlist: [],
          sortname: 'SortOrder',
          rowNum: 99999999,
          sortorder: "asc",
          datatype: "json",
          viewrecords: true,
          url: url + "GetLoad",
          editurl: url + "SaveGrid/",
          loadComplete: function (data) {
  
          },
          onSelectRow: function (rowId) {
              if (isInEditMode(budgetId)) {
                  if (rowId &amp;&amp; rowId !== lastselTsg) {
  
                      grid.jqGrid('restoreRow', lastselTsg);
  
                      var rowData = grid.jqGrid("getRowData", rowId);
                      if (rowData != undefined &amp;&amp; rowData != null) {
                          console.debug("entering edit mode");    
  
                          grid.jqGrid('editRow', rowId, true, '', '', url + 'SaveTopSheet', {
                              budgetAccountId: rowData.BudgetAccountId
                          }, 
                          function(rowid, response) {
                              console.debug("aftersave: reloadGrid");
                              grid.trigger("reloadGrid");
                          }, '', function(rowid, reuslt) {
                              console.debug("after restore: reloadGrid");
                              grid.trigger("reloadGrid");
                          });
  
                      }
  
                      lastselTsg = rowId;
                  }
              } else {
                  var getRowData = $("#baseTopSheetGrid" + budgetId).jqGrid('getRowData');
                  var rowData = getRowData[rowId - 1];
  
                  onSelectGridRow(rowData);
              }
          },
          gridComplete: function () {
  
              var ids = grid.jqGrid('getDataIDs');
              var getRowData = grid.jqGrid('getRowData');
  
              if ($.isFunction(budgetGridLoadComplete))
                  budgetGridLoadComplete(getRowData);
  
          }
      }).navGrid(pager, { edit: false, add: false, del: false, search: true });
  </code></pre>