2012-01-11 64 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中显示的行。我希望这段代码能给你一个关于这个问题的想法。 谢谢!