CRUD Работа с JQGrid - PullRequest
       4

CRUD Работа с JQGrid

0 голосов
/ 12 января 2012

Я пытаюсь реализовать CRUD в JQGrid.Но у меня возникают следующие проблемы:

- Невозможно добавить строки, используя кнопку «Добавить» отдельно [возможно только в режиме инлайн]

  • Удаление строки вызывает обратную передачу, даже с EditDialogSettings.ReloadAfterSubmitустановлено в false.
  • Удаляет только строки, добавленные после встроенного редактирования.Как можно удалить строку на стороне клиента?

Я хочу, чтобы сетка была привязана к загрузке страницы.Все изменения после этого должны выполняться только на стороне клиента.Как только форма будет окончательно отправлена, изменения сетки будут обработаны.

Я следую за Документацией, предоставленной в по этой ссылке , но я не могу ее реализовать.

Любая помощь поэтот вопрос высоко ценится.


Обновление: Вот пример кода, который я написал:

<%@ Register Assembly="Trirand.Web" Namespace="Trirand.Web.UI.WebControls" TagPrefix="trirand" %>
<trirand:JQGrid ID="XYZ" runat="server"  Width="700px" showToolBar="true">
<columns>
<trirand:JQGridColumn DataField="AA" HeaderText="AA" Width="20" Editable="true" DataType="local"/>
<trirand:JQGridColumn DataField="BB" HeaderText = "BB" Width ="50" Editable="true" DataType="local" />
<trirand:JQGridColumn DataField="CC" HeaderText ="CC" Width = "20" Editable="true" DataType="local"/>
</columns>
<ClientSideEvents RowDoubleClick ="editRow" />     
<ToolBarSettings ShowInlineAddButton="true" ShowInlineCancelButton="true" ShowDeleteButton="true" />
</trirand:JQGrid>
<script type="text/javascript">
  var LastSelection;
  function editRow(id) {
    if (id) {
      var grid = jQuery("#<%= XYZ.ClientID %>");
      grid.restoreRow(LastSelection);
      grid.editRow(id, true);
      LastSelection = id;
}
}
</Script> 

Я могу сделать встроенное редактирование, добавить строку вверху.Но я не могу удалить строку из таблицы XYZ после привязки данных.Я надеюсь, что этот код дает вам представление о проблеме.Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 января 2012

Вот пример кода, который я написал:

<%@ Register Assembly="Trirand.Web" Namespace="Trirand.Web.UI.WebControls" TagPrefix="trirand" %>
<trirand:JQGrid ID="XYZ" runat="server"  Width="700px" showToolBar="true">
<columns>
<trirand:JQGridColumn DataField="AA" HeaderText="AA" Width="20" Editable="true" DataType="local"/>
<trirand:JQGridColumn DataField="BB" HeaderText = "BB" Width ="50" Editable="true" DataType="local" />
<trirand:JQGridColumn DataField="CC" HeaderText ="CC" Width = "20" Editable="true" DataType="local"/>
</columns>
<ClientSideEvents RowDoubleClick ="editRow" />     
<ToolBarSettings ShowInlineAddButton="true" ShowInlineCancelButton="true" ShowDeleteButton="true" />
</trirand:JQGrid>
<script type="text/javascript">
  var LastSelection;
  function editRow(id) {
    if (id) {
      var grid = jQuery("#<%= XYZ.ClientID %>");
      grid.restoreRow(LastSelection);
      grid.editRow(id, true);
      LastSelection = id;
}
}
</Script> 

Я могу сделать встроенное редактирование, добавить строку вверху.Но я не могу удалить строку из таблицы XYZ после привязки данных.Я надеюсь, что этот код дает вам представление о проблеме.Спасибо!

0 голосов
/ 12 января 2012

Когда начать с jqGrid было довольно сложно, но до конца я могу понять это

Измените тип данных свойства на "local"

создайте столбцы, кое-как

jQuery("<GridName>" or this).jqGrid(
  { datatype: "local",
    colNames:['column_title_0','column_title_1','column_title_2'], 
    colModel:[  {name:'column0',index:'column0', editable:false,editoptions:{readonly:true,size:10}},
                {name:'column1',index:'column1', editable:false,editoptions:{readonly:true,size:10}},
                {name:'column2',index:'column2', editable:false,editoptions:{readonly:true,size:10}}],
    viewrecords: true,
    width: 400,
    mType: "POST",
    caption:'JQGrid review',
    height: '50px',
    scroll: 1
  }
);

Получить строку по идентификатору

     rowData = $(<Grid name or this for current grid>).jqGrid('getRowData',rowId);
      if(rowData)
      {
        rowData.Property
      }

Добавить строку

  $(<grid id> or this).jqGrid('addRowData', <Here.Model.Id>, <object with all properties>);

Удалить строку по Id

  $("<grid id>" or this).jqGrid('delRowData',rowId);

Текущая строка выбрана

  var selRowIndex = $("<grid id>" or this).jqGrid('getGridParam','selrow');

Я рекомендую вам ход за http://trirand.com/blog/jqgrid/jqgrid.html У него есть хорошие примеры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...