首先让我警告读者不要把我带到同构的任何链接,因为很有可能我已经阅读了它,并且在我问这个问题时,我已经搜索了本地运行的smartgwt展示。我要求的是没有记录,如果是,我无法破译,需要在这里进行实际解释。不,不要告诉我有关SmartGWT EE的信息。这个案例纯粹是Smartclient与我在服务器端的JSP(或perl,php)进行交互,我用它来与SAS后端进行交互。
这个问题与如何操作SAS无关。我提到SAS来说明smartclient必须直接与SAS Web服务交互,而不是通过SmartGWT服务器。我在smartclient论坛上问了一个类似但又不同的问题,这个问题仍然没有答案,所以这一定是一个非常困难的主题,即使是同构的人也没有答案。
我有
- JSON xjsondatasource url由SAS Web服务sasxjsondsrc生成。我在Jetty上使用JSP来嘲笑它。
- sasxjsondsrc = id(primaryKey),名称,描述。
- 其datasrc设置为sasxjsondsrc的ListGrid。
- SearchForm / DynamicForm editForm,其datasrc设置为sasxjsondsrc。
我需要
- 用户可以在listGrid上直观地选择一行,然后单击del按钮,我的代码将触发listGrid.removeSelectedData(),然后在本地删除该行,并将参数id = id发送到sasxjsondsrc url被删除,操作= DEL。
- 用户可以在listGrid上直观地选择一行,然后单击修改按钮,我的代码将编辑为EditForm.editSelectedData()。当用户按下保存编辑按钮时,我的代码将触发editForm.saveData(),然后在本地修改该行,并向sasxjsondsrc发送url参数id = id,name = modified-value,description = modified-description,操作= MOD。
- 用户将单击添加按钮,我的代码将触发editForm.saveData(),然后在本地追加该行,并向sasxjsondsrc发送url参数name = new-name,description = new-description,operation = ADD。
这种本地服务器管理是smartclient宣传自己的优势所在。问题是
- 我的JSP没有注册smartclient发送任何参数来指示应该执行的操作。它只接收datasource fields = values作为受影响记录的参数。
- 不会在本地附加或修改记录以进行添加或编辑操作。
- 为了克服问题(1),我尝试提供一个名为operation的额外的非显示数据源字段。但是当动态表单绑定到该数据源时,dynamicform字段将不允许我以编程方式成功修改操作字段。
- 我尝试将操作作为DSRequest附加,但我的JSP也没有收到它。
醇>
我的JSP如何知道正在执行的操作(ADD / REMOVE / EDIT)?
好的,简而言之 - SmartGWT中的数据源是一项非常棘手的业务。我被建议仅将SmartGWT用于其UI,但我应该避免使用SmartGWT数据源,因为它太难以处理。有些人可以发布或链接到我在类似于我的配置中如何进行SmartGWT客户端编程的示例。
我是否应该恢复使用GWT 2.1M3单元/页面架构并编写自己的rpc-table cell-form链接?