2012-01-11 67 views
0

我想在JQGrid中實現CRUD。但我有以下問題:CRUD使用JQGrid

-Rows不能使用添加按鈕單獨[只有在在線模式可能]

  • 刪除行導致回傳,甚至EditDialogSettings.ReloadAfterSubmit設置爲false添加。
  • 刪除內聯編輯後添加的行。如何刪除客戶端的一行?

我希望網頁在頁面加載時被綁定。所有之後的編輯應該只出現在客戶端。一旦表單終於提交,網格更改將被處理。

我正在關注this link中提供的文檔,但我無法實現它。

在這個問題上的任何幫助是高度讚賞。


更新: 這是我寫的代碼示例:

<%@ 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 2012-01-11 20:55:43

回答

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

獲取行通過編號

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

憑身份證刪除行

$("<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 =「本地」。但它不適合我。我遵循http://trirand.com/blog/jqgrid/jqgrid.html中的演示。我正在使用內聯添加方法。所以我可以添加一個新行並刪除它。但是我無法刪除在數據綁定後我在Jqgrid中獲得的行。任何建議,以簡化我的問題,高度讚賞。 – user1144097 2012-01-11 21:52:50

+0

更新你的問題,並具體哪些是問題放在你的代碼的一部分。有了它,我們可以有輕微的想法 – 2012-01-11 22:02:40

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中顯示的行。我希望這段代碼能給你一個關於這個問題的想法。 謝謝!