ASP.NET MVC+Spring.net+Nhibernate+EasyUI+Jquery开发案例(2)

 接着昨日的一而再吧,大家的宏观征程继续先河。今天大家落成了MVC里面的Dao层的布署,在上头我们早已落到实处了操作数据库的代码,在那么些体系中自我已毕了User_DepInfo表的增删改查和歪曲查询,是基于EasyUI写的。

上篇写了关于可复用拖拽的骨干控件,它的应用规模格外广阔,与之配套的就是诸如包裹、工具栏、技能条之类可以进去的靶子,但是Silverlight提供的拖拽只是对于部分特定的器皿有效,而且要吻合麻烦的平整,可延展性在嬉戏使用中更加有限,比如拖拽技能图标的时候,是接着鼠标一起走,而昨扶桑人将运用一个妙不可言的章程完结简单的技能条系统。

  1. 第六步:实现Server的接口: NewKJ241.IBLL

图片 1

(1)
这几个接口的作用和NewKJ241.IDao类库里面类的接口一模一样,目标是为了分层越发的斐然,而且在末端还有一个类要继承自那么些接口,在类库NewKJ241.IBLL上边新建一个类名,起名为:IUserDepInfoBLL,代码因为和位置格外接口的代码一模一样的,所以自己就不写出来了。

本篇代码是上篇的延展,并且关系有关知识:Silverlight
游戏开发:可接纳的拖拽控件

  1. 第七步:继承Server接口:NewKJ241.BLL

翻阅过许多材料,Silverlight中那类可以放入拖拽物体的做法,都是行使DragEnter和DragLeave那类的事件处理,深红色右手的包裹系统也是依照此类做法已毕,而自我在开发《窝窝世界》的时候,考虑不伸张程序的分寸,而没有增大ToolKit(Toolkit里有WarpPanel那类做包裹较好的控件),那么就代表必须透过其它的措施来落实拖拽Object进入目的,我使用的艺术尽管暴力不过却使得,使用的是VisualTreeHelper.FindElementsInHostCoordinates,在一个点或区域搜索符合条件的控件集合,就是通过它可以收获技能条之类的容器,因为Mouse的Down、Move、Up事件都足以取得鼠标的坐标点,所以取得这几个点上是或不是有容器完全可行。

(1)
那一个类的效果是后续自IUserDepInfoBLL类,完结的是调用前边Dao里面的接口,落成Dao的办法,那样分层会十分的明明,在NewKJ241.BLL类库上边新建一个UserDepInfoBLL,在类里面调用Dao接口的主意落成所有的法门,代码如下:

现行简短的创造一个MyPack的控件:

    public class UserDepInfoBLL<T>:IUserDepInfoBLL<T> where T:class

    {

        private IUserDepInfoDao<T> userDepInfoDao;



        public IUserDepInfoDao<T> UserDepInfoDao

        {

            get { return userDepInfoDao; }

            set { userDepInfoDao = value; }

        }



        public T Get(object id)

        {

            if (id == null)

            {

                return null;

            }

            else

            {

                return this.UserDepInfoDao.Get(id);

            }

        }



        public T Load(object id)

        {

            if (id == null)

            {

                return null;

            }

            else

            {

                return this.UserDepInfoDao.Load(id);

            }

        }



        public object Save(T entity)

        {

            if (entity == null)

            {

                return null;

            }

            else

            {

                return this.UserDepInfoDao.Save(entity);

            }

        }



        public void Update(T entity)

        {

            if (entity == null)

            {

                return;

            }

            else

            {

                this.UserDepInfoDao.Update(entity);

            }

        }



        public void SaveOrUpdate(T entity)

        {

            if (entity == null)

            {

                return;

            }

            else

            {

                this.UserDepInfoDao.SaveOrUpdate(entity);

            }

        }



        public void Delete(object id)

        {

            if (id == null)

            {

                return;

            }

            else

            {

                this.UserDepInfoDao.Delete(id);

            }

        }



        public void Delete(string idList)

        {

            if (idList == null && idList.Split(',').Length == 0)

            {

                return;

            }

            else

            {

                this.UserDepInfoDao.Delete(idList);

            }

        }



        public IList<UserDepInfo> loadByAll(string sort, string order)

        {

            return this.UserDepInfoDao.loadByAll(sort, order);

        }



        public IList<UserDepInfo> loadAllCheck(string sort, string order, string name)

        {

            return this.UserDepInfoDao.loadAllCheck(sort, order, name);

        }



        public IList<UserDepInfo> LoadAllByPage(out long total, int page, int rows, string order, string sort, string DepName)

        {

            return this.UserDepInfoDao.LoadAllByPage(out total, page, rows, order, sort, DepName);

        } }

图片 2

 

地方是用Blend画的一个前台,上面是XAML的代码:

  1. 第八步:Asp.NET MVC引入的DLL文件

<UserControl
    xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation
    xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml
    xmlns:d=”http://schemas.microsoft.com/expression/blend/2008
    xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006
    mc:Ignorable=”d”
    x:Class=”DragObject.MyPack”
    d:DesignWidth=”640″ d:DesignHeight=”480″ Height=”64″>

(1)
通过上边的预备工作,可以说是大家的多数基层代码的书写任务都已经完毕了,上面才是本项目值得学习的地方,大家整整在MVC新建的品类中书写代码,因为此处运用了Spring.net,Nhibernate,MVC,easyUI等,所以万分值得大家去研讨,当然我的写法可能也有题目,希望我们得以调换,那样我们可以共同进步。

    <StackPanel x:Name=”LayoutRoot” Orientation=”Horizontal”>
        <StackPanel.Background>
            <LinearGradientBrush EndPoint=”0.5,1″ StartPoint=”0.5,0″>
                <GradientStop Color=”#FF00B667″ Offset=”0″/>
                <GradientStop Color=”#FF00FF61″ Offset=”1″/>
            </LinearGradientBrush>
        </StackPanel.Background>
        <TextBlock x:Name=”textBlockType” TextWrapping=”Wrap” Margin=”5,0,0,0″ Width=”74″ FontSize=”12″ HorizontalAlignment=”Center” VerticalAlignment=”Center” TextAlignment=”Center”><Run Text=”只放图标”/></TextBlock>
        <Rectangle Fill=”#FFF4F4F5″ Stroke=”Black” Width=”3″/>
    </StackPanel>
</UserControl>

(2)
因为用到了Nhibernate,Spring.net,所以自己将引入的DLL文件的截图先放在此处吧,当然,我的品种中有dll文件夹,那样将那中间的DLL全体引入项目中即可。

下边是后台.cs代码:

 

public partial class MyPack : UserControl
{
    public MyPack()
    {
        InitializeComponent();
    }
    public void AddObj(UIElement uielement)
    {
        LayoutRoot.Children.Add(uielement);
    }
    public void ClearIcon()
    {
        for (int i = LayoutRoot.Children.Count – 1; i > 1; i–)
        {
            LayoutRoot.Children.RemoveAt(i);
        }
    }
}

图片 3

 

  1. 第九步:书写XML,实现Spring.net,Nhibernate

心想事成的意义相比较精通,一个是加上,一个是清理,而清理则是倒序,为了把第1个和第2个留下,假设你有其他的逻辑,可以自行添加,比如数量之类的。

(1) 首先大家在ASP.NET
MVC新建的品种NewKJ241项目上边新建多少个XML,命名各为:CommonDao.xml,HibernateDaos.xml,Services.xml,其中五个XML的效劳各是如何,大家下边解释一下:

下边就是写拖拽的逻辑,本篇那几个程序中,唯有MyIcon的控件可以拖入技能条里,而任何的Face、Card都至极,由此,将代码写在MyIcon中,重建对应的效用操作:

 1)
CommonDao.xml的功力是概念Spring.net完成数据库的节点,里面包括了NHibernate和数据库的布置文件,引用了Spring.net提供的HibernateTemplate模板,方便和数据库的互相等,和创办事物的节点(TransactionInterceptor申明式事物配置)等。是无限关键的一个XML节点,而且在这么些XML中自己都详细的诠释了具有节点的意义,那样大家可以很快的熟悉那个代码到底是为什么的,代码如下:

bool isLocked = false;
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
    base.OnMouseLeftButtonUp(e);            
            
    var findlist = VisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(null), this.Parent as FrameworkElement);
    foreach (var item in findlist)
    {
        if (item is MyPack)
        {
            (this.Parent as Panel).Children.Remove(this);
            (item as MyPack).AddObj(this);
            isLocked = true;
            break;
        }
    }            
}
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
    if (isLocked)
        return;
    base.OnMouseLeftButtonDown(e);
}

<?xml version="1.0" encoding="utf-8" ?>

<objects xmlns="http://www.springframework.net"

         xmlns:db="http://www.springframework.net/database">

  <!-- Database and NHibernate Configuration这下面是配置使用Nhibernate,在这里使用到了连接池-->

  <db:provider id="DbProvider"

                                      provider="SqlServer-2.0"

                                      connectionString="server=.;database=bkj241;uid=sa;pwd=saa;Min Pool Size=10;Max Pool Size=50;Connect Timeout=30" />

  <!--定义Session工厂,查找<db:provider />节点下面的链接字符串-->

  <!--也可以写成type="Xino.Spring.DecryptLocalSessionFactoryObject, Xino.Core.Spring",因为继承自Spring.Data.NHibernate.LocalSessionFactoryObject,这个类主要用来配置SessionFactory -->

       <object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12">

              <property name="DbProvider" ref="DbProvider" />

              <property name="MappingAssemblies">

                     <list>

                            <!--这是配置嵌入资源的xx类对应的xx.hbm.xml文件所在的项目名称-->

                            <value>NewKJ241.Model</value>

                     </list>

              </property>

    <!-- Nhibernate数据库的配置文件-->

              <property name="HibernateProperties">

                     <dictionary>

                            <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />

                            <entry key="hibernate.dialect" value="NHibernate.Dialect.MsSql2005Dialect" />

                            <entry key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />

                            <entry key="show_sql" value="true" />

                     </dictionary>



      <!--当需要启用二级缓存的时候使用,NHibernate.Cache.HashtableCacheProvider类是NHibernate默认的缓冲处理器-->

      <!--<entry key="cache.provider_class" value="NHibernate.Cache.HashtableCacheProvider"/>

      <entry key="cache.use_second_level_cache" value="false"/>

      <entry key="cache.use_query_cache" value="true"/>-->



    </property>

    <!-- 控制方法的读写属性 -->

    <!--<property name="EntityCacheStrategies">

      <object type="Spring.Util.Properties">

        --><!--其中这里的value可以为read-write,read-only,nonstrict-read-write,transactional,

        分别代表的意思是:

        read-only:只读缓存。适用于只读数据,可用于群集中。

        read-write:读写缓存。

        nonstrict-read-write:非严格读写缓存,不保证缓存与数据库的一致性。

        transactional:事务缓存。提供可重复读的事务隔离级别。--><!--     

        <property name="['NewKJ241,NewKJ241.Model']" value="read-write"/>

      </object>

    </property>

    <property name="ExposeTransactionAwareSessionFactory" value="true" />-->

  </object>



  <!--HibernateTemplate只是提供了一个模板,方便和数据库交互,而HibernateTransactionManager是一个事物管理器, -->

       <object id="HibernateTransactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate12">

              <property name="DbProvider" ref="DbProvider" />

              <property name="sessionFactory" ref="SessionFactory" />

       </object>



  <!-- Spring.net使用TransactionInterceptor声明式事物配置-->

       <object id="TransactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data">

              <property name="TransactionManager" ref="HibernateTransactionManager" />

              <property name="TransactionAttributeSource">

                     <object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data" />

              </property>

       </object>

</objects>

 

 

isLocked是标识是不是进入了技能条,如果进入了就无法再拖动,findlist是透过FindElementsInHostCoordinates找到的控件即可,在遍历的时候判断是还是不是为MyPack类,如果有的话,那就印证可以放入,当然了这一切都是在鼠标按键抬起的时候判定,放入后isLocked开启。

 2)
HibernateDaos.xml的法力是调用KJ241.HibernateDao类库里面定义的类所已毕的点子,在此处要注意一下泛型,假使你的类型中并未应用泛型的话那段代码要求修改的,我的项目中利用了泛型,所以那段代码如下:

末尾可以依据自己的内需展开改建,比如做项目判断和任何的效果开发,比如说上面呢,为了增加情趣,我扩大了MyIcon的类,通过一个继承类增添了图标切换动画,这些类名叫MyIcon2

<?xml version="1.0" encoding="utf-8" ?>

<objects xmlns="http://www.springframework.net"

         xmlns:db="http://www.springframework.net/database">

  <!--调用KJ241.HibernateDao类库里面定义的类所实现的方法,下面的写法可以实现泛型-->

  <object id="UserDepInfoDao"   type="NewKJ241.NHibernateDao.UserDepInfoDao&lt;NewKJ241.Model.UserDepInfo>,NewKJ241.NHibernateDao">

              <property name="SessionFactory" ref="SessionFactory" />

       </object>

</objects>

public class MyIcon2 :MyIcon
{
    public MyIcon2()
    {
        DispatcherTimer selfLoop = new DispatcherTimer();
        selfLoop.Interval = TimeSpan.FromMilliseconds(300);
        selfLoop.Tick += new EventHandler(selfLoop_Tick);
        selfLoop.Start();
    }

 

    int iframe = 1;
    void selfLoop_Tick(object sender, EventArgs e)
    {
        base.IconIndex = iframe;
        iframe += 1;
        if (iframe > 10)
            iframe = 1;
    }
}

 

 

 3)
Services.xml的效率是映射HibernateDaos.xml里面的节点属性,那段代码的作用是行使事物管理器完结项目完结效益的只读或者只写属性等。详细的诠释在XML里面都有,代码如下:

很粗略,在构造函数中创建了一个计时器DispatcherTimer
,起名为selfLoop(自身循环),在循环Tick事件中参加了目录变更,那样就会油但是生一个切换动画。

<?xml version="1.0" encoding="utf-8" ?>

<objects xmlns="http://www.springframework.net"

         xmlns:db="http://www.springframework.net/database">

  <!--调用HibernateDaos.xml里面的 -->

  <object id="UserDepInfoService" parent="BaseTransactionManager">

    <!-- 如果使用这个事物管理器的话,必须在这里加上节点parent="BaseTransactionManager"-->

    <property name="Target">

      <object type="NewKJ241.BLL.UserDepInfoBLL&lt;NewKJ241.Model.UserDepInfo>,NewKJ241.BLL">

        <property name="UserDepInfoDao" ref="UserDepInfoDao"/>

      </object>

    </property>

  </object>



  <!--事物处理策略,本地数据库事物-->

  <object id="transactionManager"

        type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate12">

    <property name="DbProvider" ref="DbProvider"/>

    <property name="SessionFactory" ref="SessionFactory"/>

  </object>



  <!--事物管理器,这里是判断了这些实现的方法的操作,如果不写的话,在实现这些方法的时候就会出现错误-->

  <object id="BaseTransactionManager"  type="Spring.Transaction.Interceptor.TransactionProxyFactoryObject, Spring.Data" abstract="true">

    <property name="PlatformTransactionManager" ref="transactionManager"/>

    <property name="TransactionAttributes">

      <name-values>

        <!--增加-->

        <add key="Save*" value="PROPAGATION_REQUIRED"/>

        <!--修改-->

        <add key="Update*" value="PROPAGATION_REQUIRED"/>

        <!--删除-->

        <add key="Delete*" value="PROPAGATION_REQUIRED"/>

        <!--获取-->

        <add key="Get*" value="PROPAGATION_REQUIRED"/>

        <!--浏览-->

        <add key="Find*" value="PROPAGATION_SUPPORTS,readOnly"/>

        <!--检索-->

        <add key="Search*" value="PROPAGATION_SUPPORTS,readOnly"/>

        <!--报表-->

        <add key="Query*" value="PROPAGATION_SUPPORTS,readOnly"/>

        <!--载入-->

        <add key="Load*" value="PROPAGATION_SUPPORTS,readOnly"/>

        <!--报表-->

        <add key="Report*" value="PROPAGATION_SUPPORTS,readOnly"/>

        <!--其它-->

        <add key="*" value="PROPAGATION_REQUIRED"/>

      </name-values>

    </property>

  </object>

</objects>

好了,在MainPage里写一些逻辑,或者间接在Blend里面绘制,在那边我就不再做代码讲述,可以直接看最后的作用以及下载代码商量,在左上角加盟一个重来的按钮,成效为清理条中的ICON,并随机生成5个在界面上:

 

本篇工程源代码下载地址如下:点击直接下载

(2)
那样的话我们的Spring.net,Nhibernate映射前边我们创建的接口和章程的类库所完毕的效益都就大多了,这单个XML文件还值得我们密切的钻研,举一反三吗!!

图片 4

  1. 第十步:配置Web.Config

本篇文章的小编:Nowpaper

(1)
当我们成功了前方所有的劳作后,大家将要起来配备大家的WebConfig文件了,在webConfig里面大家须求投入的代码如下:

推荐Silverlight游戏开发博客:深紫色右手

 

图片 5图片 6View Code

<configSections>

    <!--Web.Config的配置文件-->

    <!--Spring.net里面的log4net的使用,log4net是一个开源的日志记录组件, -->

              <sectionGroup name="spring">

                     <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>

                     <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>

                     <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>

              </sectionGroup>

              <section name="SpringOverrideProperty" type="System.Configuration.NameValueSectionHandler"/>

       </configSections>

       <!--可以注释-->

  <SpringOverrideProperty>

              <add key="NamingStrategy.TableHead" value=""/>

              <add key="db.datasource" value="server=.;uid=sa;pwd=saa;database=bkj241;"/>

              <!-- 0 to 6 (1 Debug 4 Error)-->

              <add key="SystemInit.IsDebug" value="true"/>

              <add key="SystemInit.Level" value="4"/>

       </SpringOverrideProperty>

       <spring>

              <parsers>

                     <parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data"/>

                     <parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data"/>

              </parsers>

              <context>

      <!--寻找定义的XML文件 -->

                     <resource uri="~/Configs/CommonDao.xml"/>

                     <resource uri="~/Configs/HibernateDaos.xml"/>

                     <resource uri="~/Configs/Services.xml"/>

              </context>

       </spring>

然后在<system.web>节点下面写入代码如下:

    <!--根据请求中指定的 URL 和 HTTP 谓词将传入的请求映射到相应的处理程序。可以在配置层次中的任何级别声明此元素。-->

        <httpHandlers>

                <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>

                <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>

         </httpHandlers>

         <httpModules>

                <add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate12"/>

                <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>

         </httpModules>

 

(2)
那样我们的WebConfig配置文件已经配备成功了,可能安顿的时候会冒出什么错误,那大家稍事的修改就OK了,下边就是项目界面的兑现

  1. 第十一步:HomeController控制器的书写

(1)
当大家完毕地点的拥有的安插的时候,可以说大家的门类早就成功的大都了,那里我们将MVC自动生成的HomeController控制器删除,大家再一次成立一个HomeController控制器,在控制器中贯彻我们要对数据的富有操作的主意的代码,上面我就间接贴出代码了,代码上面都有注释的!!

     public UserDepInfo entity = null;



        private IUserDepInfoBLL<UserDepInfo> userDepInfoService;



        public IUserDepInfoBLL<UserDepInfo> UserDepInfoService

        {

            get { return this.userDepInfoService; }

            set { this.userDepInfoService = value; }

        }



        public ActionResult Index()

        {

            return View();

        }



        //

        private void Connection_KJ241()

        {

            var webApplicationContext = ContextRegistry.GetContext() as WebApplicationContext;



            UserDepInfoService =

                webApplicationContext.GetObject("UserDepInfoService") as IUserDepInfoBLL<UserDepInfo>;

        }



        //实现所有信息的显示和条件查询

        public ActionResult LoadAllByPage(int page, int rows, string order, string sort, string DepName)

        {

            Connection_KJ241();

            long total = 0;

            //Select将序列中的每一个新元素投影到新表中

            var list = this.UserDepInfoService.LoadAllByPage(out total, page, rows, order, sort, DepName).Select(entity => new

            {

                entity.Id,

                entity.DepID,

                entity.DepName

            });



            var result = new { total = total, rows = list.ToList() };



            return Json(result);

        }



        public ActionResult Save(UserDepInfo entity)

        {

            Connection_KJ241();

            if (entity.Id == 0)

            {

                this.UserDepInfoService.Save(entity);

            }

            return Json(new { success = true, Message = "保存成功" }, "text/html", JsonRequestBehavior.AllowGet);

        }



        public ActionResult Delete(string idList)

        {

            Connection_KJ241();

            this.UserDepInfoService.Delete(idList);

            //提示删除信息成功,如果在这里的idList得到的数据时0的话,又会执行本操作的

            var result = new { success = true, Message = "删除成功!" };

            return Json(result);

        }



        public ActionResult Update(int Id, UserDepInfo entity)

        {

            Connection_KJ241();

            var model = this.UserDepInfoService.Get(Id);

            //model.DepID = int.Parse(Request["DepId"].ToString());

            //model.DepName = Request["DepName"].ToString();

            model.DepID = entity.DepID;

            model.DepName = entity.DepName;

            this.UserDepInfoService.Update(model);



            return Json(new { success = true, Message = "保存成功" }, "text/html", JsonRequestBehavior.AllowGet);

        }



        public ActionResult Login()

        {

            ViewData["entity"] = "欢迎光临";

            return View();

        }

 

   

(2)
接下来大家在控制器中Index方法上面添加视图,创制一个前台页面Index,在Index页面书写前台突显的HTML代码等,在那边大家将要用到easyUI了,所以大家要将大家项目标easyUI类库全部应用到大家须要的地点,代码如下:
 

<head runat="server">

    <title>Index</title>

    <!--引用所有的Jquery,easyUI文件 !-->

    <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/easyui/themes/default/easyui.css" />

       <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/easyui/themes/icon.css" />

    <script type="text/javascript" src="http://www.cnblogs.com/Scripts/jquery-1.4.1.min.js"></script>

       <script type="text/javascript" src="http://www.cnblogs.com/easyui/jquery.easyui.min.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/easyui/locale/easyui-lang-zh_CN.js"></script>

        <style type="text/css">

              #fm{

                     margin:0;

                     padding:10px 30px;

              }

              .ftitle{

                     font-size:14px;

                     font-weight:bold;

                     color:#666;

                     padding:5px 0;

                     margin-bottom:10px;

                     border-bottom:1px solid #ccc;

              }

              .fitem{

                     margin-bottom:5px;

              }

              .fitem label{

                     display:inline-block;

                     width:80px;

              }

       </style>

       <script type="text/javascript">

        //条件查询

           function check() {

               var keywords = $("#SSID").val();

               $('#dg').datagrid('load', {

                   DepName: keywords

               });

           }

        //添加信息

           var url;

           function newUser() {

               $('#dlg').dialog('open').dialog('setTitle', '添加');

               $('#fm').form('clear');

               url = '/Home/Save/';

           }



        //修改信息

           function editUser() {

               var row = $('#dg').datagrid('getSelections');

               if (row.length == 1) {

                   if (row[0]) {

                       $('#dlg').dialog('open').dialog('setTitle', '修改');

                       $('#fm').form('load', row[0]);

                       url = '/Home/Update/' + row.Id;

                   }

               } else {

                   $.messager.alert("提示", "每次只能修改一条,请重选");

                   return;

               }

           }



           function saveUser() {

               $('#fm').form('submit', {

                   url: url,

                   onSubmit: function () {

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

                   },

                   success: function (result) {

                       var result = eval('(' + result + ')');

                       if (result.success) {

                           $('#dlg').dialog('close'); // 关闭弹出框

                           $('#dg').datagrid('reload'); // reload the user data

                           $.messager.alert("操作", "操作成功!");

                       } else {

                           $.messager.alert("操作", "操作失败!");

                           return;

                       }

                   }

               });

           }



           function removeUser() {

               var row = $('#dg').datagrid('getSelections');

               if (!row || row.length == 0) {

                   $.messager.alert('提示', '请选择要删除的数据');

                   return;

               }

               var parm;

               $.each(row, function (i, n) {

                   if (i == 0) {

                       parm = n.Id;

                   }

                   else {

                       parm += "," + n.Id;

                   }

               });

               // alert(parm);

               if (row) {

                   $.messager.confirm('删除信息', '您确定删除此条信息吗?', function (r) {

                       if (r) {

                           $.post('/Home/Delete/', { idList: parm }, function (result) {

                               if (result.success) {

                                   $('#dg').datagrid('reload'); // reload the user data

                                   $.messager.alert("提示", "删除成功!");

                               } else {

                                   $.messager.alert('提示', '删除失败,请检查!');

                                   return;

                               }

                           }, 'json');

                       }

                   });

               }

           }

    </script>

</head>

<body>

    <div>

        <table id="dg" title="人员管理" class="easyui-datagrid" fit="True" url="/Home/LoadAllByPage/" 

                         toolbar="#toolbar" pagination="true" rownumbers="true" fitColumns="true" sortName= "DepID" >

                      <thead>

                             <tr>

                        <th checkbox="true" field="Cid"/>

                        <th field="Id" sortable="true" width="50">ID</th>

                                    <th field="DepID" sortable="true" width="50">部门ID</th>

                                    <th field="DepName" sortable="true" width="50">部门名称</th>

                             </tr>

                      </thead>

           </table>

        <div id="toolbar">

            <input type="text" name="SSID" id="SSID" />

            <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" plain="true" onclick="check()">查询</a>

                  <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">增加</a>

                  <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">修改</a>

                  <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeUser()">删除</a>

           </div>

        <!--弹出框的显示!-->

           <div id="dlg" class="easyui-dialog" style="width:400px;height:300px;padding:10px 20px"

                         closed="true" buttons="#dlg-buttons">

                  <div class="ftitle">部门管理</div>

                  <form id="fm" method="post" novalidate>

                         <div class="fitem">

                <input type="hidden" id="Id" name="Id"  />

                                <label>部门ID</label>

                                <input id="DepID" name="DepID" class="easyui-validatebox" required="true"  />

                         </div>

                         <div class="fitem">

                                <label>部门名称</label>

                                <input id="DepName" name="DepName" class="easyui-validatebox" required="true" />

                         </div>

                  </form>

           </div>

           <div id="dlg-buttons">

                  <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">确定</a>

                  <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">关闭</a>

           </div>

    </div>

</body>

 

那里大家这一个系列就已经完毕了,从那几个类型中大家就足以知道前面其余的表是怎么操作的,所谓举一反三就是那一个意思了!而且从那几个类型中大家学习到了那样多的知识点,可是个人感觉思路清楚,什么都可以解决,记得自己刚开首的时候,每一天在整那么些东西,每一日都昏昏成成的,查资料的话资料或者分外的少,只好自己渐渐领会在逐步捉摸了。所谓“功夫不负有心人”,OK,写了七个多钟头了,竣事吧,给自己留个回看。

  1. 第十二步:效果浮现

(1) 条件查询

 

图片 7

(1)    增加

 

图片 8

(3) 修改

 

图片 9

 

  下载地址:http://www.chuxinm.com/Shop/Detail/Detail?id=b88e9907dbaa4b3db297443081ab238d

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图