鼠标双击、或回车 打开内置的非模式对话框:




1.请参看该Treelist的XML模式文件,实现的关键点在于XML中的EditFreeformId
<Properties editFreeformId="FR1"/>
以及内置的 freeform 资源:
<FreeformRes>
 <!--方案1:固定freeform-->
 <freeform id="FR1" url="freeform71.xml" IdOk="ok" IdCancel="cancel" height="200" bgColor="#aaccff" alpha="100" extWidth="0"/>
 <!--方案2:动态freeform模版-->
 <freeform id="FR2" url="freeform72.xml" IdOk="ok" IdCancel="cancel" height="200" bgColor="#aaccff" alpha="100" extWidth="0"/>
</FreeformRes>
2.内嵌的freeform对话框请参看方案1的XML模式文件, 以及方案2的动态XML模式文件

3.OnEvent( )事件,只处理了"Escape"键,让其关闭对话框:
function OnEvent(id, Event, p1, p2, p3, p4)
{
 //非模式对话框打开期间
 if(AF.func("isInnerDialogOpen", "")==1) {
  if(Event == "EditKeydown" && p2 == 27) {
   //Escape键: 关闭对话框
   AF.func("closeInnerDialog", "");
  }
  else if(Event=="ButtonClicked" && p1=="ok") {
   //点了“确定”按钮
   //你可以在此书写: AF.func("CancelEvent", ""); 阻止确认动作
  }
 }
}

4.动态生成XML的规则请参考Treelist的开发文档"8.嵌入Freeform":