jQuery EasyUI使用教程之创建展开行详细编辑表单的CRUD应用

当切换datagrid视图到"detailview"时,用户可以展开一行来显示该行下面的任何详细信息。此功能允许用户为放置在行详细信息面板中的编辑表单提供恰当的布局。在本教程中,我们使用DataGrid组件来减少编辑表单所占用的空间。

查看演示

Step 1:在HTML标记中创建DataGrid

<table id="dg" title="My Users" style="width:550px;height:250px"

url="get_users.php"

toolbar="#toolbar"

fitColumns="true" singleSelect="true">

<thead>

<tr>

<th field="firstname" width="50">First Name</th>

<th field="lastname" width="50">Last Name</th>

<th field="phone" width="50">Phone</th>

<th field="email" width="50">Email</th>

</tr>

</thead>

</table>

<div id="toolbar">

<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newItem()">New</a>

<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyItem()">Destroy</a>

</div>

Step 2:为DataGrid应用详细视图

$(
‘#dg‘
).datagrid({

view: detailview,

detailFormatter:
function
(index,row){

return
‘<div class="ddv"></div>‘
;

},

onExpandRow: 
function
(index,row){

var
ddv = $(
this
).datagrid(
‘getRowDetail‘
,index).find(
‘div.ddv‘
);

ddv.panel({

border:
false
,

cache:
true
,

href:
‘show_form.php?index=‘
+index,

onLoad:
function
(){

$(
‘#dg‘
).datagrid(
‘fixDetailRowHeight‘
,index);

$(
‘#dg‘
).datagrid(
‘selectRow‘
,index);

$(
‘#dg‘
).datagrid(
‘getRowDetail‘
,index).find(
‘form‘
).form(
‘load‘
,row);

}

});

$(
‘#dg‘
).datagrid(
‘fixDetailRowHeight‘
,index);

}

});

若要使用DataGrid的详细视图,那么就在html 页面头部引入"datagrid-detailview.js"文件。

我们使用"detailFormatter"函数来生成行详细信息内容。在这种情况下,我们返回一个用于放置编辑表单的空的 。当用户点击该行展开按钮("+")时,"onExpandRow"事件将被触发,我们可以通过AJAX加载编辑表单。使用getRowDetail方法可以获得该行的详细信息容器,因此我们能够查找到该行的详细信息面板。在行详细信息中创建面板,并从"show_form.php"中加载返回的编辑表单。

Step 3:创建编辑表单

从服务器中加载编辑表单。

show_form.php

<form method=
"post"
>

<table 
class
=
"dv-table"
style=
"width:100%;background:#fafafa;padding:5px;margin-top:5px;"
>

<tr>

<td>First Name</td>

<td><input name=
"firstname"
class
=
"easyui-validatebox"
required=
"true"
></input></td>

<td>Last Name</td>

<td><input name=
"lastname"
class
=
"easyui-validatebox"
required=
"true"
></input></td>

</tr>

<tr>

<td>Phone</td>

<td><input name=
"phone"
></input></td>

<td>Email</td>

<td><input name=
"email"
class
=
"easyui-validatebox"
validType=
"email"
></input></td>

</tr>

</table>

<div style=
"padding:5px 0;text-align:right;padding-right:30px"
>

<a href=
"#"
class
=
"easyui-linkbutton"
iconCls=
"icon-save"
plain=
"true"
onclick=
"saveItem(<?php echo $_REQUEST[‘index‘];?>)"
>Save</a>

<a href=
"#"
class
=
"easyui-linkbutton"
iconCls=
"icon-cancel"
plain=
"true"
onclick=
"cancelItem(<?php echo $_REQUEST[‘index‘];?>)"
>Cancel</a>

</div>

</form>

Step 4:保存或取消编辑

调用"saveItem"函数来保存用户,或调用"cancelItem"函数来取消编辑。

function
saveItem(index){

var
row = $(
‘#dg‘
).datagrid(
‘getRows‘
)[index];

var
url = row.isNewRecord ? 
‘save_user.php‘

‘update_user.php?id=‘
+row.id;

$(
‘#dg‘
).datagrid(
‘getRowDetail‘
,index).find(
‘form‘
).form(
‘submit‘
,{

url: url,

onSubmit: 
function
(){

return
$(
this
).form(
‘validate‘
);

},

success: 
function
(data){

data = eval(
‘(‘
+data+
‘)‘
);

data.isNewRecord = 
false
;

$(
‘#dg‘
).datagrid(
‘collapseRow‘
,index);

$(
‘#dg‘
).datagrid(
‘updateRow‘
,{

index: index,

row: data

});

}

});

}

确定首先要发布哪一个URL,然后查找表单对象,并调用"submit"方法来提交表单数据。当数据保存成功后,收起并更新行数据。

function
cancelItem(index){

var
row = $(
‘#dg‘
).datagrid(
‘getRows‘
)[index];

if
(row.isNewRecord){

$(
‘#dg‘
).datagrid(
‘deleteRow‘
,index);


else
{

$(
‘#dg‘
).datagrid(
‘collapseRow‘
,index);

}

}

当取消编辑操作时,如果该行是新行而且还没有保存,那么直接删除该行,否则收起该行。

下载EasyUI示例:easyui-crud-demo.zip

>>jQuery EasyUI试用版下载地址<<

有兴趣的朋友可以点击查看更多有关jQuery EasyUI的教程

时间: 2024-10-24 23:41:56

jQuery EasyUI使用教程之创建展开行详细编辑表单的CRUD应用的相关文章

雷林鹏分享:jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用

当切换数据网格视图(datagrid view)到 'detailview',用户可以展开一行来显示一些行的明细在行下面.这个功能允许您为防止在明细行面板(panel)中的编辑表单(form)提供一些合适的布局(layout).在本教程中,我们使用数据网格(datagrid)组件来减小编辑表单(form)所占据空间. 步骤 1:在 HTML 标签中定义数据网格(DataGrid) url="get_users.php" toolbar="#toolbar" fitC

jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用

当切换数据网格视图(datagrid view)到 'detailview',用户可以展开一行来显示一些行的明细在行下面.这个功能允许您为防止在明细行面板(panel)中的编辑表单(form)提供一些合适的布局(layout).在本教程中,我们使用数据网格(datagrid)组件来减小编辑表单(form)所占据空间. 步骤 1:在 HTML 标签中定义数据网格(DataGrid) <table id="dg" title="My Users" style=&q

【jQuery EasyUI系列】 创建展开行明细编辑表单的CRUD应用

当切换数据网络格局(datagrid view)到detailview,用户可以展开一行来显示一些行的明细在行下面,这个功能允许您为防止在明细行面板中的编辑表单提供一些合适的布局. 步骤1.在HTML标签中定义数据网格DataGrid 1 <table id="dg" title="My Users" style="width:550px;height:250px" 2 url="get_users.php" 3 too

jQuery EasyUI使用教程之创建标签页

<jQuery EasyUI最新版下载> 本教程将展示如何使用easyui创建一个标签组件.标签可以动态地添加或删除多个面板,你可以使用标签在同一个页面上显示不同的实体. 标签一次只能显示一个面板,每个面板都有标题.图表和关闭按钮.当标签被选中之后,会显示相应面板的内容. 查看演示 使用HTML标记创建标签,其中包括一个DIV容器和一些DIV面板. < div class="easyui-tabs" style="width:400px;height:100

jQuery EasyUI使用教程之创建可折叠面板

<jQuery EasyUI最新版下载> 在本教程中,你将学习到有关于easyui折叠面板的知识.折叠面板包含了一系列的面板,其中所有的面板标题都是可见的,但只有一个面板的主体内容在某个时间是可见的.当用户点击面板标题时,该面板的主体内容可见,其他面板的内容将会被隐藏. 查看演示 我们将创建三个面板,其中第三个面板包含了一个树形菜单. < div class = "easyui-accordion" style = "width:300px;height:2

jQuery EasyUI使用教程之创建一个课程表

<jQuery EasyUI最新版下载> 本教程将为你展示如何使用jQuery EasyUI创建一个学校的课程表.我们将创建两个表:学校的科目在左边,时间表在右边,你可以拖动学校科目并将其放在时间表的单元格中.学校的科目是一个"div class='item'"元素,然而时间表单元格是一个"td class='drop'"元素. 查看演示 显示学校科目 < div class = "left" > < table &

jQuery EasyUI使用教程之创建一个拖放的购物车

<jQuery EasyUI最新版下载> 如果你能利用你的web应用程序很容易地实现简单的拖放,那么你一定知道一些特别的东西,使用jQuery EasyUI,我们能在web应用程序中简单地实现拖放功能. 在本教程中,我们将为你展示如何创建一个用户可以拖放他们想要购买的商品到购物车的页面.购物车中的物品和价格将会更新. 查看演示 在页面上显示商品: < ul class = "products" > < li > < a href = "

jQuery EasyUI使用教程之创建一个链接按钮

<jQuery EasyUI最新版下载> 本教程主要为大家展示如何使用jQuery EasyUI创建一个链接按钮.通常情况下,使用"button/"元素来创建一个按钮:使用"a/"元素来创建链接按钮.所以事实上一个链接按钮是一个显示为按钮样式"a/"元素. 查看演示 为了创建一个链接按钮,你所需要做的就是添加一个名为'easyui-linkbutton'的类属性到"a/"元素中: < div style =

jQuery EasyUI使用教程之创建一个简单的菜单

<jQuery EasyUI最新版下载> 本教程将为你展示如何使用jQuery EasyUI创建一个简单的菜单. 查看演示 菜单被定义在一些DIV标记中,如下所示: < div id = "mm" class = "easyui-menu" style = "width:120px;" > < div onclick = "javascript:alert('new')" >New</