ExtJS - 获取刚刚保存的记录的ID

时间:2010-12-13 21:41:05

标签: javascript asp.net wcf extjs

我需要保存一些数据并返回在SQL 2005数据库中创建的ID。我需要在保存之前将ID传递给另一个对象,以便我可以正确关联它们。

使用Ext实现此目的的最佳方法是什么?框架内置了什么使这个变得简单吗?

感谢。

                function AddPromotionType() {
                var currentDate = new Date();
                var newTypeJsonObject = {
                    promotionTypeId: '0',
                    promotionType: Ext.getCmp('txtPromoType').getValue(),
                    updatedBy: userid, 
                    updateDate: currentDate
                }

                // serialize our service object
                var newLevelJsonData = Ext.encode(newTypeJsonObject);

                // call the web service and pass over our service object
                Ext.lib.Ajax.defaultPostHeader = 'application/json';
                Ext.Ajax.request({
                    url: 'Service/AddPromoType',
                    method: 'POST',
                    params: newLevelJsonData,
                    success: function(response, options) {
                        AddTypeWindow.destroy();
                        AddTypeWindow.hide();

                        // refresh dropdown to reflect new data

                        Ext.getCmp('newPromoType').getStore().reload();                        
                    },
                    // if data fails to save, show message
                    failure: function(response, options) {
                        Ext.MessageBox.alert('Error saving new promotion type', response.responseText);
                    }
                });
            }

1 个答案:

答案 0 :(得分:1)

假设您的服务器使用新id传回更新的数据,您的成功回调的响应参数应该包含它。当使用自动化Ajax调用的Stores中内置的工具(例如,Ext Direct,REST API支持等)时,id会自动在适当的Record上更新,您可以处理商店的add事件来检查记录。但是,由于您正在进行手动Ajax调用,因此如果您需要id,请立即检查您的响应。