我正在尝试在JQGrid中实现CRUD。但我有以下问题:
- 无法单独使用添加按钮添加行[仅在内联模式下可用]
我希望网格在页面加载时绑定。之后的所有编辑应仅在客户端进行。一旦表单最终提交,将处理网格更改。
我正在关注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表上看到的行。我希望这段代码可以让您了解问题。 谢谢!
答案 0 :(得分:0)
当开始使用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
}
);
按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>);
按ID删除行
$("<grid id>" or this).jqGrid('delRowData',rowId);
选择当前行
var selRowIndex = $("<grid id>" or this).jqGrid('getGridParam','selrow');
我建议你转向http://trirand.com/blog/jqgrid/jqgrid.html它有很好的例子
答案 1 :(得分: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表上看到的行。我希望这段代码可以让您了解问题。 谢谢!