类似ListView ,htc组件[4]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 lxx8402 的 blog

 *  style: 样式
*/
function data(value, style){
 this._value   = value; 
 this._style   = style; 
}

/**
 * listview表头对象
 * 参数:
 *  columnname: 字段名
 *  datatype: 字段类型
 *  value: 字段描述,实际显示用
 *  style: 样式,调用外部样式表是 classname
 * 无参数的内部变量:
 *  _border: 是否已经排序
 *  _ordersequence: 排序方式
*/
function head(columnname, datatype, value, style){
 this._columnname = columnname;
 this._datatype  = datatype;
 this._value   = value;
 this._style   = style;
 this._border  = false;
 this._ordersequence = "";
}

/**
 * 载入数据到数组
 *
 * 将dataxml数据载入lvhead和lvdata数组
*/
function loaddata(){
 xmldoc.loadxml(dataxml);
 var rows = xmldoc.documentelement.childnodes;
 var fields;
 for(var r=0; r<rows.length; r++){
  if(r>maxrowcount){
   alert(text["maxrowcount"]);
   break;
  }
  fields = rows[r].childnodes;
  if(r == 0){  
   //载入表头
   for(var i=0;i<fields.length;i++){
    var tmp = fields[i].childnodes;
    lvhead[i] = new head(tmp[0].text,tmp[2].text,tmp[1].text,"head");
   }
  }
  else{   
   //载入数据
   lvdata[r-1] = new array();
   for(var i=0;i<fields.length;i++)
    lvdata[r-1][i] = new data(fields[i].text,"backgroundcolor:#ffffff;color:#000000;cursor:default");
  }
 } 
}

/**
 * 格式化html tag 对象
 *
*/
function _lvelement(id){
 if (element.all[id].length)
  return element.all[id][0]
 else
  return element.all[id]
}

/**
 * 选择listview一行
 *
*/

function selectrow(){
 if(typeof(onrowselected) != 'function')
  return;

 if(currentrow != null)
  if(currentrow.sourceindex > -1)
   setrowstyle(currentrow, '', '');

 row = window.event.srcelement;

 while (row.tagname != 'tr'){
  row = row.parentelement;
  if (!row)
   return;
 }

 setrowstyle(row, selectedrowbackgroundcolour, selectedrowcolour);
 currentrow = row;

 _lvevtrowselected.fire();
}

/**
 * 设定选择行的样式
 *
*/
function setrowstyle(row, backgroundcolor, color){
 try{
  if(backgroundcolor == '' || color == ''){
   for(i=0;i<row.cells.length;i++){
    setstyle(row.cells[i],lvdata[row.rowindex-1][i]._style);
   }  
  }
  else{
   for(i=0;i<row.cells.length;i++){
    row.cells[i].style.backgroundcolor = backgroundcolor;
    row.cells[i].style.color = color;
   }
  }
 }
 catch(e){
  alert(e.description);
 }
}

/**
 * 设定工具栏数据
 *
 * 参数:
 *  newpagecount: 当前页
*/
function configuretoolbar(newpagecount){
 if (toolbar.all.pagecount.value != newpagecount){
  toolbar.all.pagecount.value = newpagecount;

  var html = new array()

  for (var i=0;i<newpagecount;i++)
   html[i] = '<option value=' + (i+1) + '>' + (i+1)

  toolbar.all.pagenumber.outerhtml = '<select class=lv id=pagenumber>' + html.join('') + '</select>'
  toolbar.all.pagenumber.onchange = selectpage;
 }

 element.pagecount = newpagecount;

 toolbar.all.rowcount.value = rowcount;
 toolbar.all.pagenumber.value = pagenumber;
 toolbar.all.first.disabled = eval( parseint(pagenumber) <= 1 );
 toolbar.all.prev.disabled = eval( parseint(pagenumber) <= 1 );
 toolbar.all.next.disabled = eval( parseint(pagenumber) >= parseint(toolbar.all.pagecount.value) );
 toolbar.all.last.disabled = eval( parseint(pagenumber) == parseint(toolbar.all.pagecount.value) || parseint(toolbar.all.pagecount.value) == 0);

 toolbar.all.insertbtn.disabled = false;
 toolbar.all.updatebtn.disabled = (newpagecount == 0);
 toolbar.all.deletebtn.disabled = eval(toolbar.all.updatebtn.disabled);

 toolbar.all.deletebtnimg.style.filter = toolbar.all.deletebtn.disabled ? 'gray' : '';

本文关键:javascript datagrid htc listview
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top