我刚接触EXT,试做了一个页面,在页面打开时,加载后台取到一个ID值,显示在页面的“编号”文本输入框内,
大致代码如下:
[code="C#"]
loginForm = new Ext.form.FormPanel({
labelAlign: 'left', buttonAlign: 'center', bodyStyle: 'padding:5px',
frame: true, labelWidth: 80,
items: [
{
xtype: "textfield",
fieldLabel: "编号",
name: "ContactId"
}, {
xtype: "textfield",
fieldLabel: "工程名称",
name: "ProjectName",
allowBlank: false,
blankText: '请输入工程名称'
},
listeners:{
render:function(){
var jsonDataObj = loginForm .getForm().getValues();
Ext.Ajax.request({
url: 'GetMaxId.ashx',
params: '',
jsonData: jsonDataObj,
success: function(response, options) {
var responseData = Ext.decode(response.responseText);
loginForm.getForm().setValues(responseData)[
{ id: "ContactId", value: responseData.data.maxid }];
},
failure: function() {
Ext.Msg.alert('错误', '发生错误!');
}
})
}
})
[/code]
后台简易代码:
[code="C#"]
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//省略逻辑处理
context.Response.Write("{success:true,data:{msg:'加载成功!',maxid:newMaxId}}");
}
[/code]
现在页面代码里的responseData取不到值,
response.responseText本身就没值,
而且后台返回staus都是failure,
请问我这个页面后台调用响应是不是有问题啊?!
有没有人能帮我解答一下?!谢谢
[b]问题补充:[/b]
取不到值的问题我是找到了,
context.Response.Write("{success:true,data:{msg:'加载成功!',maxid:newMaxId}}");
这话给绕了:
context.Response.Write("{success:true,data:{msg:'加载成功!',maxid:'" + newMaxId + "'}}");
一开始就被双引号引着,之前代码里得到的值没办法设回去了。
现在问题页面上是得到后台返回的值了,但不清楚应该怎么传给页面控件,
还有一个,我不是想通过按钮激发取值,我是想在页面加载时,去后台取值显示在页面上。