到目前为止,我已经成功地让我的BSP MVC模型工作了。
这是我的代码。
视图
<body>
<z:form>
<z:input binding="//c/counter"
invisible="true"/>
Counter : <z:write binding="//c/counter"/>
<z:button fcode="incr"
text="Increase"/>
<z:button fcode="decr"
text="decrease"/>
</z:form>
</body>
控制器
通过 fcode,我在控制器中调用了"fcode_incr"方法。"c"是zcl_counter的模型实例。它有一个属性计数器,此方法将增加该计数器。
method fcode_incr.
c->increment( ).
endmethod.
我希望zcl_model是显而易见的,并且其代码在这里无关紧要。
当我按下"增加"按钮时出现问题,服务器发送请求。当它收到响应时,它会刷新页面。所以我得到了递增的值。如何让它与 Ajax 一起工作,以便页面保持不刷新?
我已经尝试过使用"带有flowlogic的XML页面"的Ajax。如"事件处理程序-->请求"
request->get_form_field('variable').
它是否有进一步的帮助?
正确的 Ajax 调用是
$.ajax({
url:'ajaxController.do',
statusCode:{
404: function(){
alert("not found");
}
},
success: function(data){
$('#viewData').html(data);
}
}).error(function(){
alert("failed");
});
此链接解释了详细信息: http://www.saptechnical.com/Tutorials/BSP/AJAX/create.htm
但是,从本质上讲;
-
在你的bsp页面中集成一些javascript,以便你可以做ajax,这里有一些选项:
- 要么从该链接中获取代码
- 或者更好的解决方案是使用 jQuery,要么通过
- 使用
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/themes/base/jquery-ui.css" type="text/css" />
- 或者上传 http://code.jquery.com/jquery-1.8.2.min.js 并在代码中引用它
- 使用
你可以像这样调用 ajax 调用 jQuery: http://api.jquery.com/jQuery.ajax/
-
在 BSP 项目中创建一个将从 AJAX 调用的控制器。
-
为控制器创建一个控制器类,仅重新定义 REQUEST 并将逻辑放在那里
做。