视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ASP.NET MVC使用EasyUI的datagrid多选提交保存教程
2020-11-27 22:42:34 责编:小采
文档

需要实现EasyUI的datagrid组件加入选择checkbox列,并提交后台批量添加的功能,页面代码如下:
代码如下:

<script language="javascript" type="text/javascript">
$(function() {
//searchbox
$('#selectgoods-keywords').searchbox({
searcher: function(val, name) {
searchInfo(val);
}
});
//datagrid
$('#selectgoods-grid').datagrid({
url: '/Goods/List',
pageNumber: 1,
pageSize: 20,
pageList: [20, 40, 60, 80, 100]
});
//form
});
function searchInfo(val){
// var keytype=$('#keyType').combobox('getValue');
var keytype = 'Goods_Name';
var keywords = val;
$('#selectgoods-grid').datagrid('reload', { keytype: keytype, keywords: keywords });
}
function saveSelectGoods() {
var ids = [];
var rows = $('#selectgoods-grid').datagrid('getSelections');
for (var i = 0; i < rows.length; i++) {
ids.push(rows[i].Identifier);
}
var selectsupplier = '<%=ViewData["supplier"] %>';
$.post('/SupplierGoods/SaveSelect', { supplier: selectsupplier, checks: ids.join(',') }, function(data) {
if (data) {
$('#goodslist-grid').datagrid('reload');
$('#goodsInfo-window').window('close');
} else {
alert('保存失败!');
}
}, 'json');
}
</script>
<div style="width:100%; height:100%">
<table id="selectgoods-grid" class="easyui-datagrid" fit="true" toolbar="#tlb_selectgoods_search" pagination="true"
rownumbers="true" fitColumns="true" idField="Identifier">
<thead>
<tr>
<th field="ck" checkbox="true"></th>
<th field="Identifier" hidden="true" width="0" editor="text">Id</th>
<th field="Goods_Name" width="100" editor="{type:'validatebox',options:{required:true}}">商品名称</th>
<th field="Chemistry" width="100" editor="{type:'validatebox',options:{required:true}}">化学指标</th>
<th field="Physical" width="100" editor="{type:'validatebox',options:{required:true}}">物理指标</th>
<th field="Partner_Name" width="50" editor="{type:'validatebox',options:{required:true}}">合作状态</th>
</tr>
</thead>
</table>
<div id="tlb_selectgoods_search">
商品名称:<input name="keywords" id="selectgoods-keywords" class="easyui-searchbox" /><a href="#" class="easyui-linkbutton" iconCls="icon-save" plain="true" onclick="javascript:saveSelectGoods()">保存</a>
</div>
</div>

ASP.NET MVC的Controller代码如下:
代码如下:

/// <summary>
/// 多选商品添加
/// </summary>
/// <param name="supplier">供货商ID</param>
/// <returns></returns>
public ActionResult SelectGoods(string supplier)
{
ViewData["supplier"] = supplier;
return View();
}
/// <summary>
/// 保存批量添加的产品信息
/// </summary>
/// <param name="checks">选中的商品ID</param>
/// <param name="supplier">供货商名称</param>
/// <returns></returns>
public JsonResult SaveSelect(string checks, string supplier)
{
JsonResult result = new JsonResult();
result.Data = false;
try
{
if (String.IsNullOrEmpty(supplier))
return result;
SupplierGoods goods = new SupplierGoods();
goods.Identifier = 0;
//拼装xml
String ids=Communion.StringHelper.BuildXmlID(checks);
goods.Goods_ID = -1;//标示批量插入
goods.Note = ids;
goods.Month_Output = Convert.ToDouble(String.IsNullOrEmpty(this.ReadFromRequest("Month_Output")) ? "0" : this.ReadFromRequest("Month_Output"));
goods.Supplier_ID = Convert.ToInt32(supplier);
goods.Create_Date = DateTime.Now;
goods.Customers = this.ReadFromRequest("Customers");
goods.Equipment = this.ReadFromRequest("Equipment");
goods.Detail_Params = this.ReadFromRequest("Detail_Params");
goods.IsDefault = Convert.ToInt32(String.IsNullOrEmpty(this.ReadFromRequest("IsDefault")) ? "0" : this.ReadFromRequest("IsDefault"));
Business business = new BusinessLogic();
int id = business.Save<SupplierGoods>(goods);
if (goods.Identifier == 0)
{
goods.Identifier = id;
}
result.Data = true;
return result;
}
catch (Exception e)
{
return result;
}
}

存储过程利用xml变量对传入的xml类型的ID集合进行批量添加保存到数据库中,存储过程代码如下:
代码如下:

ALTER PROCEDURE [dbo].[View_SupplierGoodsCreate]
@Identifier int,
@Supplier_ID int,
@Goods_ID int,
@isDefault int,
@Create_Date datetime,
@Month_Output float(8),
@Goods_Name nvarchar(400)=NULL,
@Physical nvarchar(400)=NULL,
@Chemistry nvarchar(400)=NULL,
@Customers nvarchar(400)=NULL,
@Equipment nvarchar(400)=NULL,
@Note nvarchar(MAX)=NULL,
@Detail_Params nvarchar(400)=NULL
AS
IF @Goods_ID=-1
BEGIN
--批量插入商品
DECLARE @xml xml
SET @xml=@Note
INSERT INTO Supplier_Goods(Supplier_ID,Goods_ID,Create_Date,Month_Output,Customers,Equipment,Note,isdefault,Detail_Params)
SELECT @Supplier_ID,identifier,@Create_Date,0,null,null,null,0,null
FROM Base_Goods
WHERE
Identifier in (Select
T.ID.value('.', 'int') As ID
From
@xml.nodes('/XML/ID') as T(ID)) and Identifier not in (select goods_id from Supplier_Goods where Supplier_ID=@Supplier_ID)
SET @Identifier=@Goods_ID
END

下载本文
显示全文
专题