zoukankan      html  css  js  c++  java
  • jsData 使用教程(三) 实现增删改功能

    在某些 RIA 框架中,实现增删改,可能要写一大堆的服务端代码,但是在 jsData 里,只需要写极少量的代码。如果能利用上代码生成器,甚至可以不写代码。现在我们来看一个比较典型的例子。

    服务端代码如下:

    代码
    [WebMethod]
    public virtual ExecuteResult UpdateCategory(Dictionary
    <string, object> item)
    {
    return base.Update<Category>(item);
    }
    [WebMethod]
    public virtual ExecuteResult DeleteCategory(Dictionary
    <string, object> item)
    {
    return base.Delete<Category>(item);
    }
    [WebMethod]
    public virtual ExecuteResult InsertCategory(Dictionary
    <string, object> item)
    {
    var result = base.Insert<Category>(item);
    if(result.AffectedRowCount > 0)
    {
    result.Members
    = new {
    CategoryID
    = item["CategoryID"]
    };
    }
    return result;
    }

     由于 CategorID 是自增长类型,它的数值是在插入数据库后生成的。因此在插入数据后,需要将该数值返回到客户端。下面这段代码就是用于将服务端生成的属性返回到客户端,而 result.AffectedRowCount > 0 则表示成功将数据添加到数据库。

    if(result.AffectedRowCount > 0)
    {
    result.Members
    = new {
    CategoryID
    = item["CategoryID"]
    };
    }

    客户端代码如下,只需要添加一个 CommandField  即可实现增、删、改功能 ,具体请看文件名为 Cagegory.html 的例子。 

    代码
    Sys.onReady(function() {

    var c = new WebApplication.CategoryMetaType();
    var dataSource = new JData.WebServiceDataSource("../Services/NorthwindService.asmx", "GetCategories", "InsertCategory", "UpdateCategory", "DeleteCategory");
    dataSource.set_selector([c.CategoryID, c.CategoryName, c.Description]);
    dataSource.set_sorting(
    'CategoryID desc');

    var columns = new Array();
    columns[columns.length]
    = new JData.BoundField(c.CategoryID, null, '60px', '56px', true);
    columns[columns.length]
    = new JData.BoundField(c.CategoryName, null, '120px', '112px', false);
    columns[columns.length]
    = new JData.BoundField(c.Description, null, '220px');
    columns[columns.length]
    = new JData.CommandField('', '120px', true, true, true, true);

    var gridView = new JData.GridView($get('gridView'));
    gridView.set_dataSource(dataSource);
    gridView.set_columns(columns);
    gridView.set_allowPaging(
    true);
    gridView.set_caption(
    'Cagegoires');
    gridView.set_pageSize(
    15);
    gridView.get_pagerSettings().set_mode(JData.PagerButtons.NumericFirstLast);
    JData.JQueryUIStyle(gridView);
    gridView.initialize();
    });

     Demo 下载:http://www.jsdata.org ,完整代码在 /Demo/Category.html 中。

  • 相关阅读:
    hdu5360 Hiking(水题)
    hdu5348 MZL's endless loop(欧拉回路)
    hdu5351 MZL's Border(规律题,java)
    hdu5347 MZL's chemistry(打表)
    hdu5344 MZL's xor(水题)
    hdu5338 ZZX and Permutations(贪心、线段树)
    hdu 5325 Crazy Bobo (树形dp)
    hdu5323 Solve this interesting problem(爆搜)
    hdu5322 Hope(dp)
    Lightoj1009 Back to Underworld(带权并查集)
  • 原文地址:https://www.cnblogs.com/ansiboy/p/1766279.html
Copyright © 2011-2022 走看看