zl程序教程

您现在的位置是:首页 >  前端

当前栏目

ASP.NETMVC使用EasyUI的datagrid多选提交保存教程

EasyUIASP教程 使用 保存 提交 Datagrid NetMvc
2023-06-13 09:14:31 时间
需要实现EasyUI的datagrid组件加入选择checkbox列,并提交后台批量添加的功能,页面代码如下:
复制代码代码如下:

<scriptlanguage="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
});
functionsearchInfo(val){
//varkeytype=$("#keyType").combobox("getValue");
varkeytype="Goods_Name";
varkeywords=val;
$("#selectgoods-grid").datagrid("reload",{keytype:keytype,keywords:keywords});
}
functionsaveSelectGoods(){
varids=[];
varrows=$("#selectgoods-grid").datagrid("getSelections");
for(vari=0;i<rows.length;i++){
ids.push(rows[i].Identifier);
}
varselectsupplier="<%=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>
<divstyle="width:100%;height:100%">
<tableid="selectgoods-grid"class="easyui-datagrid"fit="true"toolbar="#tlb_selectgoods_search"pagination="true"
rownumbers="true"fitColumns="true"idField="Identifier">
<thead>
<tr>
<thfield="ck"checkbox="true"></th>
<thfield="Identifier"hidden="true"width="0"editor="text">Id</th>
<thfield="Goods_Name"width="100"editor="{type:"validatebox",options:{required:true}}">商品名称</th>
<thfield="Chemistry"width="100"editor="{type:"validatebox",options:{required:true}}">化学指标</th>
<thfield="Physical"width="100"editor="{type:"validatebox",options:{required:true}}">物理指标</th>
<thfield="Partner_Name"width="50"editor="{type:"validatebox",options:{required:true}}">合作状态</th>
</tr>
</thead>
</table>
<divid="tlb_selectgoods_search">
商品名称:<inputname="keywords"id="selectgoods-keywords"class="easyui-searchbox"/><ahref="#"class="easyui-linkbutton"iconCls="icon-save"plain="true"onclick="javascript:saveSelectGoods()">保存</a>
</div>
</div>

ASP.NETMVC的Controller代码如下:
复制代码代码如下:

///<summary>
///多选商品添加
///</summary>
///<paramname="supplier">供货商ID</param>
///<returns></returns>
publicActionResultSelectGoods(stringsupplier)
{
ViewData["supplier"]=supplier;
returnView();
}
///<summary>
///保存批量添加的产品信息
///</summary>
///<paramname="checks">选中的商品ID</param>
///<paramname="supplier">供货商名称</param>
///<returns></returns>
publicJsonResultSaveSelect(stringchecks,stringsupplier)
{
JsonResultresult=newJsonResult();
result.Data=false;
try
{
if(String.IsNullOrEmpty(supplier))
returnresult;
SupplierGoodsgoods=newSupplierGoods();
goods.Identifier=0;
//拼装xml
Stringids=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"));
Businessbusiness=newBusinessLogic();
intid=business.Save<SupplierGoods>(goods);
if(goods.Identifier==0)
{
goods.Identifier=id;
}
result.Data=true;
returnresult;
}
catch(Exceptione)
{
returnresult;
}
}

存储过程利用xml变量对传入的xml类型的ID集合进行批量添加保存到数据库中,存储过程代码如下:
复制代码代码如下:
ALTERPROCEDURE[dbo].[View_SupplierGoodsCreate]
@Identifierint,
@Supplier_IDint,
@Goods_IDint,
@isDefaultint,
@Create_Datedatetime,
@Month_Outputfloat(8),
@Goods_Namenvarchar(400)=NULL,
@Physicalnvarchar(400)=NULL,
@Chemistrynvarchar(400)=NULL,
@Customersnvarchar(400)=NULL,
@Equipmentnvarchar(400)=NULL,
@Notenvarchar(MAX)=NULL,
@Detail_Paramsnvarchar(400)=NULL
AS
IF@Goods_ID=-1
BEGIN
--批量插入商品
DECLARE@xmlxml
SET@xml=@Note
INSERTINTOSupplier_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
FROMBase_Goods
WHERE
Identifierin(Select
T.ID.value(".","int")AsID
From
@xml.nodes("/XML/ID")asT(ID))andIdentifiernotin(selectgoods_idfromSupplier_GoodswhereSupplier_ID=@Supplier_ID)
SET@Identifier=@Goods_ID
END