我在一个名为:studentId、StudentName、studentLastname 的窗口中有 3 个表单字段。如果我输入 studentID,它应该填充 studentname 和 studentlastname 的值。我怎样才能做到这一点?我知道,我必须使用侦听器,但我不确定我将如何从数据库中加载值。它应该是 AJAx 请求,而不是表单提交/重新加载。
如果你知道,请告诉我。我正在使用 Extjs 4 和 Spring MVC。
谢谢。米
我在一个名为:studentId、StudentName、studentLastname 的窗口中有 3 个表单字段。如果我输入 studentID,它应该填充 studentname 和 studentlastname 的值。我怎样才能做到这一点?我知道,我必须使用侦听器,但我不确定我将如何从数据库中加载值。它应该是 AJAx 请求,而不是表单提交/重新加载。
如果你知道,请告诉我。我正在使用 Extjs 4 和 Spring MVC。
谢谢。米
答案应该走多远?您是否还期望服务器端代码?
Ext.define('Student', {
extend: 'Ext.data.Model',
fields: ['id', 'firstName', 'lastName'],
proxy: {
type: 'ajax',
url : 'students'
}
});
然后,一旦您输入 studentId,您就可以执行以下操作:
var iStudent = Ext.ModelManager.getModel('Student');
iStudent.load( studendId, {
success: function( aStudent ) {
console.log( aStudent );
// Feed the student details into the form.
}
});
Ext 功能丰富,提供了不止一种方法来做你想做的事。如果您不准备花时间了解它是如何工作的,那么最好还是坚持使用 JQuery 或其他 DOM 操作器,或者甚至是原始的 javascript 和 http 请求。
您需要知道的一切都在Sencha 网站上的 API 文档中,其中有很多示例和指南以及一个非常好的论坛。但是有很多东西要学。
那里关于服务器端代码的信息很少,教你 Spring 不是 Sencha 的工作。您的服务器需要能够接受请求并返回简单的“{success=true}”响应或 Ext 可以使用的格式的数据。例如。XML 或 JSON。还有一个 DIRECT API,但我不建议将它用于您的第一个应用程序。
假设您想使用 JSON 字符串,您的服务器响应将是这样的
[{"studentId":12345,"studentFirstName":"John","studentLastName":"Smith"},
{"studentId":12346,"studentFirstName":"Jenny","studentLastName":"Brown"},
{"studentId":12347,"studentFirstName":"Able","studentLastName":"Seaman"}]
您可以使用它通过 Ext.Proxy 和 Ext.Model 填充 Ext.Store(请参阅 lzhaki 的回答)
您可以通过 Ext.ComponentManager 使用您的文本框,并且您可以使用 Ext.Component(s) 提供的方法来执行诸如 .setValue() 之类的方法
当您开始使用 Ext 时可能是一项艰巨的工作,它远远超出了 DOM 操作,您需要了解它是如何工作的,以获得它为程序员提供的价值和您的应用程序的可维护性。