2012-01-11 4 views
0

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

-Rows не могут быть добавлены с помощью кнопки Добавить отдельно [возможно только в режиме встроенного]

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

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

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

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


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

<%@ 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 после завершения привязки данных. Надеюсь, этот код даст вам представление о проблеме. Спасибо!

+1

Вы попробовали свои форумы поддержки? Разве это не платный продукт? http://www.trirand.net/forum/ – CrazyDart

ответ

0

При запуске с jqGrid было некоторое трудно, но в конце концов я могу понять это

Изменение свойств типа данных на «локальный»

создать столбцы, как некоторые

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 
    } 
); 

Получить ряд по ID

 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>); 

Delete Row по Id

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

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

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

Я рекомендую вам поворот для http://trirand.com/blog/jqgrid/jqgrid.html это хорошие примеры

+0

Большое спасибо за ответ.Я уже установил dataType = "local". Но это не работает для меня. Я следил за демонстрацией, проиллюстрированной в http://trirand.com/blog/jqgrid/jqgrid.html. Я использую метод inline add. Поэтому я мог бы добавить новую строку и удалить ее. Но я не могу удалить строку, которую я получил в Jqgrid после привязки данных. Любые предложения по упрощению моей проблемы высоко ценятся. – user1144097

+0

обновите свой вопрос и укажите, какая проблема ставит часть вашего кода. с этим мы просто можем иметь небольшую идею –

0

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

<%@ 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 после завершения привязки данных. Надеюсь, этот код даст вам представление о проблеме. Спасибо!

Смежные вопросы