填入的JSON数据(相对URL):
1.抛给页面的事件如下,表中“船名”、“城市”列是可以输入的,请任意作能触发如下事件的操作;
2.请将鼠标在任一行的"国家"单元格处停留,会触发事件, 你可以看到有国旗图标的浮动提示框;

当前: 单击: 双击:
按钮: 超链接: 修改:
离开单元格: 键盘(非字符): 键盘(字符):



1.源码分析:js源码中的OnEvenet( )函数由Treelist触发:
function OnEvent(id, Event, p1, p2, p3, p4)
{
 if(Event == "SelChanged") {  //事件:当前行或单元格切换
  var s;
  if(p2=="")
   s = "行号: " + p1;
  else
   s = "行号: " + p1 + ",列名: " + p2;
  document.getElementById("CurSelStr").innerHTML = s;
 }
 else if(Event == "Clicked") {  //事件:鼠标单击在某单元格
  document.getElementById("ClickStr").innerHTML = "行号: " + p1 + ",列名: " + p2;
  if(p4 =="button")  //单击在按钮上
   document.getElementById("ButtonStr").innerHTML = "行号: " + p1 + ",列名: " + p2;
  else if(p3 != "")  //单击在超链接上
   document.getElementById("HyperStr").innerHTML = "内容: " + p3;
 }
 else if(Event == "DblClicked" )   //事件:鼠标双击
  document.getElementById("DblClickStr").innerHTML = "行号: " + p1 + ",列名: " + p2;
 else if(Event == "EditChanged" )  //事件:内容被修改
 ...(略)
 //如下是鼠标移入“国家”单元格触发的事件,事件中执行了全局函数 MessageboxPoint 
 else if(Event == "MouseMoveIn") {
 	var country = AF.func("GetCellData", p1 + "\r\n" + p2);
 	var s = "Cursor \r\n" + "行号: " + p1 + "\\r\\n列名: " + p2 + "\\r\\n国家: " +country+ "<br><image>treelistdata/flag-large/" +country+ ".png</image>";
 	AF.func("MessageboxPoint", s);
 }
}

2.Treelist的XML描述文件中,当前选中行的颜色定义如下:
<Properties curSelBackColor="#33aaccee;borderWidth=1;borderRound=6;borderColor=#55aaff" .../>
注:背景色 "#33aaccee" 中,"#33" 是Alpha(即透明度),"#aaccee"是RGB,这就是所谓“ARGB”.
此外,XML中除了一个edittype="button"列、一个"EditWithButton"列,没别的特殊之处.

3.本例填入了JSON格式的数据.