我有一个直接的方法,它获取2个参数并返回一个值(字符串)。虽然我可以看到直接方法被调用并且返回值“result”是预期的(alert函数使用正确的值打印它),但HTML中的值是'undefined'
[DirectMethod]
public string callFNGetPtidPrfx(int siteid, int ptid)
{
DAL.CDataContext dc = new CDataContext();
return dc.fn_GetPtid(100, siteid, ptid);
}
Handler="
this.body.dom.innerHTML = String.format('{0}',(#{QueriesStore1}.getAt(rowIndex).get('PtId') !=null? #{DirectMethods}.callFNGetPtidPrfx(#{QueriesStore1}.getAt(rowIndex).get('SiteId'),#{QueriesStore1}.getAt(rowIndex).get('PtId'),{
success: function (result) {
alert(result);
return result;
}
}):'-')
修改 Artem Stepin的解决方案奏效了。唯一的事情就是第一次调用它的html格式不正确...请看一下截图
以下是我使用的完整代码:
<Show Handler="
try{
var rowIndex = #{QueriesGridPanel1}.view.findRowIndex(this.triggerElement);
var me = this;
#{DirectMethods}.callFNPtidPrfx(#{QueriesStore1}.getAt(rowIndex).get('SiteId'),#{QueriesStore1}.getAt(rowIndex).get('PtId'),{
success: function (result) {
me.body.dom.innerHTML = String.format('{0}<hr />{1} <br /><br /><i>{2} level query<br />Link to:{3}|{4}|{5}|{6}|{7}<br />Created By: {8}, {9}</i> ',
'<i>'+#{QueriesStore1}.getAt(rowIndex).get('CreatedBy') +':</i><b> '+ #{QueriesStore1}.getAt(rowIndex).get('Message')+'</b>',
(#{QueriesStore1}.getAt(rowIndex).get('ResolvedBy') !=null? '<i><u>'+#{QueriesStore1}.getAt(rowIndex).get('ResolvedBy') +'</u>: </i><b>' + #{QueriesStore1}.getAt(rowIndex).get('comment')+'</b>':''),
(#{QueriesStore1}.getAt(rowIndex).get('FieldName')!=null? 'Field': (#{QueriesStore1}.getAt(rowIndex).get('TableName')!=null? 'Form': (#{QueriesStore1}.getAt(rowIndex).get('VIID') !=null? 'Visit' :(#{QueriesStore1}.getAt(rowIndex).get('PtId') !=null?'Pt':'Site' )))),
(#{QueriesStore1}.getAt(rowIndex).get('PtId') !=null? result :'-'),
(#{QueriesStore1}.getAt(rowIndex).get('VIID') !=null? #{QueriesStore1}.getAt(rowIndex).get('VISID') :'-') ,
(#{QueriesStore1}.getAt(rowIndex).get('INSTID')!=null? #{QueriesStore1}.getAt(rowIndex).get('INSTID'):'-'),
(#{QueriesStore1}.getAt(rowIndex).get('TableName')!=null? #{QueriesStore1}.getAt(rowIndex).get('TableName').replace('form.',''):'-'),
(#{QueriesStore1}.getAt(rowIndex).get('FieldName')!=null? #{QueriesStore1}.getAt(rowIndex).get('FieldName'):'-'),
#{QueriesStore1}.getAt(rowIndex).get('CreatedBy'),
#{QueriesStore1}.getAt(rowIndex).get('QuerySubmitted').toLocaleString());
}
});
if (#{QueriesStore1}.getAt(rowIndex).get('FieldName') !=null && #{QueryDetailsWindow}.hidden) {
updateSpot(#{QueriesStore1}.getAt(rowIndex).get('FieldName').replace('[','').replace(']',''), #{QueriesStore1}.getAt(rowIndex).get('INSTID'));
}
} catch(err){};
" />