record.create() を呼び出すと成功する場合もあれば、レコード オブジェクトのプロパティが適切に設定されているにもかかわらず、そのようなメソッドが存在しないというエラーがスローされる場合もあります。
create メソッドの使用方法が間違っていませんか? JavaScript カスタム オブジェクトの構文について何か不足している可能性があります。
<script language="javascript" type="text/javascript">
var record = {
RecordID : null,
CustomerID : null,
CompanyID : null,
create : function() {
var obj = new Object();
obj.RecordID = "";
obj.CustomerID = "";
return obj;
}
};
function pageLoad(sender, eventArgs) {
{
//*******SUCCEEDS********
record = record.create()
}
function RadGrid1_RowSelected(sender, args) {
currentRowIndex = args.get_gridDataItem().get_element().rowIndex;
var dataItem = args.get_gridDataItem().get_dataItem();
recordId = dataItem["Record_ID"];
if (tableView.get_selectedItems().length == 1) {
record = record.create();
record.RecordID = dataItem["Record_ID"];
record.CustomerID = dataItem["Customer_ID"];
setValues();
}
else if (tableView.get_selectedItems().length > 1) {
record= record.create();//****FAILS ALWAYS even when record object has non-null properties*******
}
if ($.inArray(recordId, recordIds) == -1) {
recordIds.push(recordId);
}
}
</script>
更新:これが私にとってうまくいったことです。 「レコード」グローバル オブジェクトでcreate メソッドを使用する代わりに、単純なアプローチを使用することになりました。レコード オブジェクトで create( ) メソッドを呼び出すたびに、カスタム メソッド 'resetRecord' を呼び出すだけです。そうすれば、エラーは発生せず、ロジックは完全に機能します。
function resetRecord() {
record.RecordID = "";
record.CustomerID = "";
record.CompanyID = "";
}