私はどのブラウザでもSmart GWT 2.3.0を使用しています。スマートGWTはリストグリッドのIDを更新しません
私はデータだけで単純なリストグリッドを持っています。そして、私が新しい登録を作成するとき、私のIDを更新しません。
私はそれについてfaq problemを読んでいます。私はすべてが正しいと思います。
データ・ソースのコードがある:
DataSource ds = null;
try {
ds = new DataSource();
ds.setDataURL("do");
ds.setController(controller);
DataSourceTextField nombre = new DataSourceTextField("nombre",
"Nombre", 50, true);
DataSourceTextField codigo = new DataSourceTextField("codigo",
"Código", 50, true);
DataSourceTextField id = new DataSourceTextField("id",
"Identificador", 50);
id.setPrimaryKey(Boolean.TRUE);
id.setCanEdit(Boolean.FALSE);
ds.setFields(id, codigo, nombre);
コンソール結果は次のとおりで
16:43:29.808:KPR3:DEBUG:gridEdit:isc_ListGrid_1:showing
インラインエディタ:3,2は、焦点を当てる: 真 16:43: 31.385:KPR5:情報:gridEdit:isc_ListGrid_1:cellEditEnd: 終了編集、完了イベント: 入力 16:43:31.386:KPR5:DEBUG:gridEdit:isc_Li stGrid_1:変更 検出:newValues:{codigo: "PRUEBA"、 ノンブル: "Prueba"}、oldValues:43: 16はundef 31.390:KPR5:DEBUG:gridEdit:isc_ListGrid_1: フィールドで:バリを適用codigo。 【 {タイプ: "isString"、 typeCastValidator:真は、 は_generated:真、 defaultErrorMessage: "文字列である必要があります。"}、 {タイプ: "必須"、 defaultErrorMessage:「フィールドがある: にErrorMessage、undefがPRUEBA 16:43:31.390:KPR5:情報:gridEdit:isc_ListGrid_1:validateFieldValue、 newValue: "PRUEBA"、合格: resultingValue、真:ヌル 16:43:31.392:KPR5:DEBUG:gridEdit:isc_ListGrid_1: フィールドで:ノンブル印加バリ:[ {タイプ: "isString"、 typeCastValidator:真が、 は_generated:真、 defaultErrorMessage : "文字列でなければなりません"}、 {タイプ: "必須"、 defaultErrorMessage: "フィールドが必要とされる"} ]値:Prueba 16:43:31.393:KPR5:INFO:gridEdit にErrorMessage、undefを:newValue: "Prueba"、検証に合格: true、resultsValue:null 16:43:31.393:KPR5:情報:gridEdit:isc_ListGrid_1:を保存していますnewValues '{codigo: "PRUEBA"、 ノンブル: "Prueba"}' 16:43:31.996は:XRP3:DEBUG:ResultSetの:(: isc_ListGrid_1によって作成された):isc_ResultSet_1 データソースデータ 変更 午後4時43発射:31.997:XRP3:INFO:ResultSet:isc_XDataSource_3:dsResponse が正常に動作するために が更新レコード[s]を返しませんでした。 提出された要求データを使用して ResultSetキャッシュを更新しています。 16:43:31.997:XRP3:DEBUG:のResultSet:isc_XDataSource_3:キャッシュに統合することに提出 データ:[ {codigo: "PRUEBA"、 ノンブル: "Prueba"} ] 16:43:31.997: XRP3:INFO:ResultSet:isc_ResultSet_1 (作成者:isc_ListGrid_1):操作後に キャッシュを更新します。タイプ: add、allMatchingRowsCached true:43:31997:XRP3:INFO:のResultSet:isc_ResultSet_1 (作成者:isc_ListGrid_1):更新 キャッシュ: [ {codigo: "PRUEBA"、 ノンブルOPERATIONTYPE 1行が データを更新し、 'isc_ListGrid_1' によって を提出した '追加' "Prueba"} ] 16:43:31.998:XRP3:INFO:のResultSet:(作成者:isc_ListGrid_1):isc_ResultSet_1 ローカル フィルタが適用される:{ } 16時43:4 4のレコードが マッチドフィルタ。 31.999:XRP3:INFO:ResultSet:isc_XDataSource_3:dsResponse が正常に動作するために が更新レコード[s]を返しませんでした。 提出された要求データを使用して ResultSetキャッシュを更新しています。 16:43:31.999:XRP3:DEBUG:のResultSet:isc_XDataSource_3:キャッシュに統合することに提出 データ:[ {codigo: "PRUEBA"、 ノンブル: "Prueba"} ] 16:43:32.004: RDQ5:DEBUG:ResultSetの:isc_ResultSet_1 (作成者: isc_ListGrid_1):getRange(0、3)キャッシュ
から満足
私はそれが挿入で同じことを起こると言うのを忘れて申し訳ありませんが、これは、インサートのログです:
13:22:09.162:KPR3:DEBUG:gridEdit:isc_ListGrid_0:change detection: newValues: {codigo: "prueba",
nombre: "prueba"}, oldValues: undef
13:22:09.167:KPR3:DEBUG:gridEdit:isc_ListGrid_0:At field: codigo applying validators: [
{type: "isString",
typeCastValidator: true,
_generated: true,
defaultErrorMessage: "Debe ser una Cadena."},
{type: "required",
defaultErrorMessage: undef,
errorMessage: "Campo es obligatorio"}
] to value:prueba
13:22:09.168:KPR3:INFO:gridEdit:isc_ListGrid_0:validateFieldValue, newValue: "prueba", passed validation: true, resultingValue: null
13:22:09.170:KPR3:DEBUG:gridEdit:isc_ListGrid_0:At field: nombre applying validators: [
{type: "isString",
typeCastValidator: true,
_generated: true,
defaultErrorMessage: "Debe ser una Cadena."},
{type: "required",
defaultErrorMessage: undef,
errorMessage: "Campo es obligatorio"}
] to value:prueba
13:22:09.172:KPR3:INFO:gridEdit:isc_ListGrid_0:validateFieldValue, newValue: "prueba", passed validation: true, resultingValue: null
13:22:09.172:KPR3:INFO:gridEdit:isc_ListGrid_0:Saving newValues '{codigo: "prueba",
nombre: "prueba"}'
13:22:10.612:XRP7:DEBUG:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):dataSource data changed firing
13:22:10.612:XRP7:INFO:ResultSet:isc_XDataSource_1:dsResponse for successful operation of type add did not return updated record[s]. Using submitted request data to update ResultSet cache.
13:22:10.612:XRP7:DEBUG:ResultSet:isc_XDataSource_1:Submitted data to be integrated into the cache:[
{codigo: "prueba",
nombre: "prueba"}
]
13:22:10.613:XRP7:INFO:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):updating cache in place after operationType: add, allMatchingRowsCached true
13:22:10.613:XRP7:INFO:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):Updating cache: operationType 'add' submitted by 'isc_ListGrid_0',1 rows update data:
[
{codigo: "prueba",
nombre: "prueba"}
]
13:22:10.614:XRP7:INFO:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):Local filter applied: 3 of 3 records matched filter:{
}
13:22:10.615:XRP7:INFO:ResultSet:isc_XDataSource_1:dsResponse for successful operation of type add did not return updated record[s]. Using submitted request data to update ResultSet cache.
13:22:10.615:XRP7:DEBUG:ResultSet:isc_XDataSource_1:Submitted data to be integrated into the cache:[
{codigo: "prueba",
nombre: "prueba"}
]
13:22:10.627:RDQ9:DEBUG:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):getRange(0, 2) satisfied from cache
input: {
"__requestBody": {
"dataSource": "isc_XDataSource_1",
"operationType": "add",
"data": {
"nombre": "prueba",
"codigo": "prueba"
},
"componentId": "isc_ListGrid_0",
"oldValues": null
},
"inputfields": [
{
"value": "prueba",
"property": "nombre"
},
{
"value": "prueba",
"property": "codigo"
}
],
"__requestFormat": "smartgwt",
"__httpSession": "[email protected]",
"__http_request": "[email protected]",
"fields": [
{
"name": "id",
"property": "id"
},
{
"name": "codigo",
"property": "codigo"
},
{
"name": "nombre",
"property": "nombre"
}
]
}
そして、これは、更新レジスタの私の応答です:これは、新しいレジスタを追加するために、応答としての私のサーバーJSONを送信するものである
{
"id": "1",
"__requestBody": {
"dataSource": "isc_XDataSource_2",
"operationType": "update",
"data": {
"nombre": "prueba2",
"id": "1"
},
"componentId": "isc_ListGrid_0",
"oldValues": {
"id": "1",
"codigo": "prueba",
"nombre": "prueba"
}
},
"inputfields": [
{
"value": "prueba2",
"property": "nombre"
},
{
"value": "1",
"property": "id"
}
],
"__requestFormat": "smartgwt",
"__httpSession": "[email protected]",
"__http_request": "[email protected]",
"fields": [
{
"name": "id",
"property": "id"
},
{
"name": "codigo",
"property": "codigo"
},
{
"name": "nombre",
"property": "nombre"
}
]
}
サーバーからのあなたの応答がどのように見えるかは分かります。あなたはその情報であなたの投稿を更新していただけますか? SmartGWTはあなたのためのIDを作成しません、あなたはそれらを自分で提供する必要があります。 Side-note:レスポンスがJSON形式の場合は、データソースのDataFormatをJSONに設定する必要があります。 –
私はjson server-sendで更新しました。 – user670852