function save_fun() {
        if (AddPublishForm.getForm().isValid()) {
            AddPublishForm.form.submit({ url: "URL/jydbh/savejydinfo_jyd.aspx", method: "POST" });
        }
        var gh = ds_add;
        jyd_save(ds_add.data.items)
    }
    function jyd_save(modified) {
        var json = [];
        Ext.each(modified, function(item) {
            json.push(item.data);
        });
        if (json.length > 0) {
            Ext.Ajax.request({
                url: "URL/jydbh/savejydinfo_hwd.aspx",
                params: { data: Ext.util.JSON.encode(json), jydbh: Ext.getCmp("jydbh_add").getValue() },
                method: "POST",
                success: function(response) {
                    Ext.getCmp("save").setText("更新(S)"); Ext.getCmp("edit").enable(); Ext.getCmp("printpre").enable(); Ext.getCmp("print").enable();
                },
                failure: function(response) {
                    Ext.Msg.alert("警告", "数据保存失败,请稍后再试!");
                }
            });
        }
        else {
            Ext.Msg.alert("警告", "没有任何需要更新的数据!");
        }
    }后台cs
string jydbhid = Request["jydbh"];
        string jsonData = "{data:" + Request.Form["data"].ToString() + "}"; ;        JavaScriptSerializer serializer = new JavaScriptSerializer();
        Dictionary<string, object> o = serializer.Deserialize<Dictionary<string, object>>(jsonData);
        ArrayList nodelist = (ArrayList)o["data"];
        string sql = "", hwbhid="";
        for (int i = 0; i < nodelist.Count; i++)
        {
            Dictionary<string, object> itemnamelist = (Dictionary<string, object>)nodelist[i];
            hwbhid = jydbhid + "0" + (i + 1);
            sql += "insert into hwxx (jydbh,hwbh,hwmc,jsbzbm,hwzjs,hwzzl,hwztj,kcjs,kczl,kctj,dj,bxe,bxfl,bxf,hwyf,hwhk,zrdj,hwzr,jhf,hwzyf,hwzt) values ('" + jydbhid + "','" + hwbhid + "','" + itemnamelist["hwmc_add"] + "'," + itemnamelist["jsbzbm_add"] + ","+itemnamelist["zjs_add"] + ","+itemnamelist["zzl_add"]+ ","+itemnamelist["ztj_add"] + ","+itemnamelist["zjs_add"]+ ","+itemnamelist["zzl_add"] + ","+itemnamelist["ztj_add"]+ ","+itemnamelist["dj_add"]+ ","+itemnamelist["bxe_add"] + ","+itemnamelist["bxfl_add"] + ","+itemnamelist["bxf_add"] + ","+itemnamelist["cyf_add"]+ ","+itemnamelist["hk_add"]+ ","+itemnamelist["zrdj_add"] + ","+itemnamelist["hwzr_add"] + ","+itemnamelist["jhf_add"]+ ","+itemnamelist["hwzyf_add"]+ ",'在库')";
            sqlhelper.RunSQL(sql);
        }

解决方案 »

  1.   

    这是extjs中store数据的保存方法  如果只有一行的话 可以保存
    如果有两行以上的话 就会插入两条相同的记录???
      

  2.   

    我曾经用可编辑grid做的时候也碰到重复添加多条的情况,解决方案是添加成功后加上
    ds.commitChanges();
    在success   function里面执行store的这个方法
      

  3.   

    success: function(response) {
       ds_add.commitChanges();//加了还是一样啊
      Ext.getCmp("save").setText("更新(S)"); Ext.getCmp("edit").enable(); Ext.getCmp("printpre").enable(); Ext.getCmp("print").enable();
      },