SAPUI5
にフロントエンドプログラムを作成しています。これは、ユーザーが(charや数字のような)データをテーブルに入力してから、さらにクリックするとデータを読み取ることができるはずですボタン上で "submit"sapui5のテーブルからユーザー入力を読み取る
私がこれまで見たことは、選択された行からデータを取得することに関連するすべてでした。
私はこの分野では本当に新しいので、何か助けに感謝します!
私はsap.ui.commons.table.Table
を使用しています。テーブルは最初にJSON
ファイルからデータを取得しますが、バインディングをテストするために行っています。
//data definition:
var oPosData = [{PoItemI : "0010"}];
//Table:
var oTable = new sap.ui.table.Table("PoData",{
//title: "Positionsdetails",
visiblRowCount: 5,
firstVisibleRow: 3,
selectionMode: sap.ui.table.SelectionMode.Single
});
// For simplicity, i will just ad 1 column to the table. but i have more
//Positionsnummer:
var oColumn_PosNr = new sap.ui.table.Column("PosNr",{
label: new sap.ui.commons.Label({text: "Position"}),
//template: new sap.ui.commons.TextView().bindProperty("text", "Positionsnummer"),
template: Input1 = new sap.ui.commons.TextField("PosNrTF",{
key: "text",
value: "{PoItemI}"
}),
//sortProperty: "Positionsnummer",
//filterProperty: "Positionsnummer",
width: "200px"
});
//Input1.setValue("Bla"); Input1.getValue());
//Input1.attachChange(function(oEvent) {
var output = oEvent.getSource().getBindingContext().getPath();
alert('Text changed to : '+ output);
console.log(output)
});
oTable.addColumn(oColumn_PosNr);
//Create a model and bind the table rows to this model
var oModel_Item = new sap.ui.model.json.JSONModel();
oModel_Item.setData({modelData: oPosData});
oTable.setModel(oModel_Item);
oTable.bindRows("/modelData");
このテーブルコントロールでは間違っていますか?あるいは、私は拘束力のない間違っているのですか私はそれを読むことを試みるときに動作しません。
また、コントロールのバインディング部分を抽出する際に問題が発生しています。
// Submit button
// I would be happy if this button prints me the value, that is stored in the
//table
var oButton1 = new sap.ui.commons.Button({
text : "Submit",
style: sap.ui.commons.ButtonStyle.Emph,
width: '50%',
//tooltip : "",
//press : function() {alert('Pressed me' +);}
press : function() {
var table_model = sap.ui.getCore().getControl("PoData").getModel();//.getPath();//.getPath();
var table_row = sap.ui.getCore().getControl("PoData").getRows()[1].getCells()[1];//.getValue();
var table_path = sap.ui.getCore().getControl("PosNrTF").getBindingContext(table_model);//.getPath();
var table_column_LABEL = oTable.getColumns()[0].getLabel().mProperties.text;
var table_column_template = oTable.getColumns()[0][1];//getBindingContext();
alert(table_column_LABEL);
alert(table_model);
alert(table_row);
alert(table_path);
alert(table_column_template);
},
layoutData : new sap.ui.layout.GridData({
indent: "L5 M5",
span: "L1 M6 S12"
})
});
カラムのテンプレート部分に格納されている値を取得できません。
列の代わりに表に行を追加するようなやり方でやりますか?私はCustomDataまたはの内容のコンテンツを入手しましたが、これを使用する方法がわからなくて、これが問題を解決するかどうかわかりませんでしたか?ユーザーが入力またはバインディングするデータに興味があるだけであれば、バインディングを使用すべきかどうかは、双方向バインディング(これを行う方法が分かりません)によって「値を自動的に更新する」ことによって助けになります。
こんにちはnistv4nと助けてくれてありがとう!!! 私は値を印刷/警告したとき、それは空白でした。私は昨日の夜、私がここに置く回避策を見つけました。私が行った変更は、最初のテーブル自身を編集できるようにすることでした(カラムだけでなく)。私はこれがどのように影響を受けているのか分かりませんが、その後、私は単に追加するボタンを追加しました。私は単に新しい初期データをデータフィールドにプッシュするためにプッシュを使用しました。 –