实现了ztree与datagrid互动

This commit is contained in:
yubaolee 2015-10-30 23:14:31 +08:00
parent 104866d83b
commit 1f574aca70
10 changed files with 99 additions and 52 deletions

View File

@ -87,11 +87,24 @@ namespace Infrastructure
case ">=": case ">=":
filter = Expression.GreaterThanOrEqual(left, right); filter = Expression.GreaterThanOrEqual(left, right);
break; break;
case "!=":
filter = Expression.NotEqual(left, right);
break;
case "like": case "like":
filter = Expression.Call(left, typeof(string).GetMethod("Contains", new Type[] { typeof(string) }), filter = Expression.Call(left, typeof(string).GetMethod("Contains", new Type[] { typeof(string) }),
Expression.Constant(filterObj.Value)); Expression.Constant(filterObj.Value));
break; break;
case "not in":
var listExpression = Expression.Constant(filterObj.Value.Split(',').ToList()); //数组
var method = typeof(List<string>).GetMethod("Contains", new Type[] { typeof(string) }); //Contains语句
filter = Expression.Not(Expression.Call(listExpression, method, left));
break;
case "in":
var lExp = Expression.Constant(filterObj.Value.Split(',').ToList()); //数组
var methodInfo = typeof(List<string>).GetMethod("Contains", new Type[] { typeof(string) }); //Contains语句
filter = Expression.Call(lExp, methodInfo, left);
break;
} }
return filter; return filter;

View File

@ -48,6 +48,10 @@
<Compile Include="OrgManagerApp.cs" /> <Compile Include="OrgManagerApp.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Infrastructure\Infrastructure.csproj">
<Project>{5FEAEC9A-4F1E-4EE7-B377-9DB1B0870DAC}</Project>
<Name>Infrastructure</Name>
</ProjectReference>
<ProjectReference Include="..\OpenAuth.Domain\OpenAuth.Domain.csproj"> <ProjectReference Include="..\OpenAuth.Domain\OpenAuth.Domain.csproj">
<Project>{6108da8e-92a1-4abe-b9f5-26d64d55ca2c}</Project> <Project>{6108da8e-92a1-4abe-b9f5-26d64d55ca2c}</Project>
<Name>OpenAuth.Domain</Name> <Name>OpenAuth.Domain</Name>

View File

@ -77,5 +77,10 @@ namespace OpenAuth.App
{ {
return _repository.Find(u => u.ParentId == orgId); return _repository.Find(u => u.ParentId == orgId);
} }
public void DelOrg(int Id)
{
_repository.Delete(u =>u.Id ==Id);
}
} }
} }

View File

@ -35,6 +35,16 @@ namespace OpenAuth.Domain.Interface
void Delete(T entity); void Delete(T entity);
/// <summary>
/// 批量更新
/// </summary>
void Update(Expression<Func<T, bool>> exp, T entity);
/// <summary>
/// 批量删除
/// </summary>
void Delete(Expression<Func<T, bool>> exp);
void Save(); void Save();
} }
} }

View File

@ -35,6 +35,14 @@ namespace OpenAuth.Mvc.Controllers
return JsonHelper.Instance.Serialize(_orgApp.LoadChildren(id)); return JsonHelper.Instance.Serialize(_orgApp.LoadChildren(id));
} }
public void DelOrg(string json)
{
var delObj = JsonHelper.Instance.Deserialize<Org[]>(json);
foreach (var obj in delObj)
{
_orgApp.DelOrg(obj.Id);
}
} }
} }
}

View File

@ -36,6 +36,13 @@
$.getJSON("OrgManager/LoadOrg", function (json) { $.getJSON("OrgManager/LoadOrg", function (json) {
var zTreeObj = $.fn.zTree.init($("#orgTree"), setting, json); var zTreeObj = $.fn.zTree.init($("#orgTree"), setting, json);
zTreeObj.expandAll(true);
loadDataGrid(json);
});
});
function loadDataGrid(data) {
$('#test-datagrid-array').datagrid({ $('#test-datagrid-array').datagrid({
gridTitle: '机构列表显示', gridTitle: '机构列表显示',
@ -45,10 +52,10 @@
{ name: 'Name', width: '150', label: '机构名称' }, { name: 'Name', width: '150', label: '机构名称' },
{ name: 'CreateTime', width: '120', label: '登记日期' } { name: 'CreateTime', width: '120', label: '登记日期' }
], ],
data: json, data: data,
hiddenFields: ['Id'], hiddenFields: ['Id'],
editUrl: 'ajaxDone1.html', editUrl: 'OrgManager/AddOrg',
delUrl: 'ajaxDone1.html', delUrl: 'OrgManager/DelOrg',
editMode: 'dialog', editMode: 'dialog',
fullGrid: true, fullGrid: true,
showLinenumber: true, showLinenumber: true,
@ -57,33 +64,14 @@
filterMult: false, filterMult: false,
showTfoot: true showTfoot: true
}); });
}); }
});
function zTreeOnClick(event, treeId, treeNode) { function zTreeOnClick(event, treeId, treeNode) {
$.getJSON("OrgManager/LoadChildren", { id: treeNode.Id }, function (json) { $.getJSON("OrgManager/LoadChildren", { id: treeNode.Id }, function (json) {
$('#test-datagrid-array').destroy();
$('#test-datagrid-array').datagrid({ $('#ztree-detail').empty().append('<table id="test-datagrid-array" data-width="100%" data-height="100%" class="table table-bordered"></table>');
gridTitle: '机构列表显示', loadDataGrid(json);
showToolbar: true,
toolbarItem: 'all',
columns: [
{ name: 'Name', width: '150', label: '机构名称' },
{ name: 'CreateTime', width: '120', label: '登记日期' }
],
data: json,
hiddenFields: ['Id'],
editUrl: 'ajaxDone1.html',
delUrl: 'ajaxDone1.html',
editMode: 'dialog',
fullGrid: true,
showLinenumber: true,
showCheckboxcol: true,
paging: false,
filterMult: false,
showTfoot: true
});
}); });
} }

View File

@ -78,6 +78,10 @@
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" /> <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" /> <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
<entityFramework> <entityFramework>

View File

@ -2,6 +2,7 @@
using System.Data.Entity.Migrations; using System.Data.Entity.Migrations;
using System.Linq; using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
using EntityFramework.Extensions;
using OpenAuth.Domain.Interface; using OpenAuth.Domain.Interface;
using OpenAuth.Repository.Models; using OpenAuth.Repository.Models;
using Infrastructure; using Infrastructure;
@ -70,6 +71,16 @@ namespace OpenAuth.Repository
Save(); Save();
} }
public void Update(Expression<Func<T, bool>> exp, T entity)
{
Context.Set<T>().Where(exp).Update(u => entity);
}
public void Delete(Expression<Func<T, bool>> exp)
{
Context.Set<T>().Where(exp).Delete();
}
public void Save() public void Save()
{ {
Context.SaveChanges(); Context.SaveChanges();

View File

@ -36,6 +36,9 @@
<Reference Include="EntityFramework"> <Reference Include="EntityFramework">
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath> <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
</Reference> </Reference>
<Reference Include="EntityFramework.Extended">
<HintPath>..\packages\EntityFramework.Extended.6.1.0.168\lib\net45\EntityFramework.Extended.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer"> <Reference Include="EntityFramework.SqlServer">
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath> <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference> </Reference>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="EntityFramework" version="6.1.3" targetFramework="net45" /> <package id="EntityFramework" version="6.1.3" targetFramework="net45" />
<package id="EntityFramework.Extended" version="6.1.0.168" targetFramework="net45" />
</packages> </packages>