全编辑WebGrid控件LrcGrid(4)—— 脚本库和样式表[1]

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

本文简介:选择自 masterlrc 的 blog

全编辑webgrid控件lrcgrid(4)—— 脚本库和样式表

脚本库:包含了控件客户端操作的函数.包括:

  • 将表格行切换到编辑模式的函数:chgeditrow(rowindex,tab)()
  • 将表格列切换到编辑模式的函数:chgedit(colindex,tab)
  • 在客户端构造更新数据库的sql语句: buildsql(tabname)
  • 添加新记录的函数:addrow(tab)
  • 移除新添加行的函数: removerow(tab)

全部js代码:

 function chgeditrow(rowindex,tab)
{
 var tabbody = tab.tbodies[0];
 var ise = 0;
 //alert(rowindex);
 //alert(tabbody.rows[rowindex].cells.length);
 for(var i = 0;i< tabbody.rows[rowindex].cells.length;i++)
 {
  //alert(tabbody.rows[rowindex].cells[i].childnodes[0].id);
  if(tabbody.rows[rowindex].cells[i].haschildnodes())
  {
 
   if(tabbody.rows[rowindex].cells[i].childnodes[0].nodetype != 3)
   {
    if(tabbody.rows[rowindex].cells[i].childnodes[0].id.indexof('lrctb_') != -1)
    {
     if(!tabbody.rows[rowindex].cells[i].childnodes[0].disabled)
     {
      tabbody.rows[rowindex].cells[i].childnodes[0].disabled = true;
      tabbody.rows[rowindex].cells[i].childnodes[0].classname = "lrc_txt_hid";
     }
     else
     {
      tabbody.rows[rowindex].cells[i].childnodes[0].disabled = false;
      tabbody.rows[rowindex].cells[i].childnodes[0].classname = "lrc_txt_show";
     }
    }
    else if(tabbody.rows[rowindex].cells[i].childnodes[0].id.indexof('lrcdrl_') != -1)
    {
     if(!tabbody.rows[rowindex].cells[i].childnodes[0].disabled)
     {
      tabbody.rows[rowindex].cells[i].childnodes[0].disabled = true;
     }
     else
     {
      tabbody.rows[rowindex].cells[i].childnodes[0].disabled = false;
     }   
    }
   }
  }
 }
}
function chgedit(colindex,tab)
{
 var tabbody = tab.tbodies[0];
 var onerow;
 if(tabbody.rows[1].cells[colindex].childnodes[0].disabled)
 {
  for(var i=1;i<tabbody.rows.length-1;i++)
  {
   onerow = tabbody.rows[i];
   if(onerow.cells[colindex].childnodes[0].id.indexof('lrctb_') != -1)
   {
    onerow.cells[colindex].childnodes[0].disabled = false;
    onerow.cells[colindex].childnodes[0].classname = "lrc_txt_show";
   }
   else if(onerow.cells[colindex].childnodes[0].id.indexof('lrcdrl_') != -1)
   {
    onerow.cells[colindex].childnodes[0].disabled = false;       
   }
  }
 }
 else
 {
  for(var i=1;i<tabbody.rows.length-1;i++)
  {
   onerow = tabbody.rows[i];
   if(onerow.cells[colindex].childnodes[0].id.indexof('lrctb_') != -1)
   {
    onerow.cells[colindex].childnodes[0].disabled = true;
    onerow.cells[colindex].childnodes[0].classname = "lrc_txt_hid";
   }
   else if(onerow.cells[colindex].childnodes[0].id.indexof('lrcdrl_') != -1)
   {
    onerow.cells[colindex].childnodes[0].disabled = true;       
   }
  }
 }
}
function buildsql(tabname)
{
 var updsql = '';
 var tabbody = tabname.tbodies[0];
 var onerow;
 var len = tabbody.rows.length;
 var cellen = tabname.rows[0].cells.length;
 var isadd = tabname.getattribute("isadd");
 var isdel = tabname.getattribute("isdel");
 if(isdel == 'true')
 {
  cellen = cellen -1;
 }

 var hidindex = 0;
 if(isadd == 'true')
 {
  hidindex = 2;
 }
 var tabn = tabbody.rows[len-1].cells[hidindex].childnodes[1].value;
 var coln = tabbody.rows[len-1].cells[hidindex].childnodes[2].value;
 var colna = coln.split(",");
 var prik = tabbody.rows[len-1].cells[hidindex].childnodes[3].value;
 var prika = prik.split(",");
 var editcol = tabbody.rows[len-1].cells[hidindex].childnodes[4].value;
 var editcola;
 if(editcol == 'lrcalledit')
 {
  var len = colna.length - prika.length;
  editcola = new array(len);
  var indexe = 0;
  for(var i = 0 ; i< colna.length ; i++)
  {
   var ispri = 0;
   for(var j=0;j<prika.length;j++)
   {
    if(prika[j] == i)
    {
     ispri = 1;
    }
   }
   if(ispri == 0)
   {
    editcola[indexe] = i;
    indexe++;
   }
  }
 }
 else
 {
  editcola = editcol.split(",");
 }
 
 var strupd = "update " + tabn + " set ";
 var strins = "insert " + tabn + " (" + coln + ") values ( ";
 for(var i=1;i<tabbody.rows.length-1;i++)
 {
  onerow = tabbody.rows[i];
  //更新语句
  if(onerow.id != "lrcnewrow")
  {
   updsql += strupd;
   for(var j=0;j<editcola.length;j++)
   {
    updsql += colna[editcola[j]];
    updsql += " = '";
    if(onerow.cells[editcola[j]].firstchild.id.indexof('lrcdrl_') != -1)
    {
     updsql += onerow.cells[editcola[j]].firstchild.options[onerow.cells[editcola[j]].firstchild.selectedindex ].value;
    }
    else
    {
     updsql += onerow.cells[editcola[j]].firstchild.value;
    }
    if(j != editcola.length - 1)
    {
     updsql += "', ";
    }
    else
    {
     updsql += "' ";
    }
   }
   updsql += " where ";
   for(var k=0;k<prika.length;k++)
   {
    updsql += colna[prika[k]];
    updsql += " = '";
    updsql += onerow.cells[prika[k]].firstchild.nodevalue;
    if(k != prika.length - 1)
    {
     updsql += "' and ";
    }
    else
    {
     updsql += "' \r";
    }
   }
  }
  else  //插入语句
  {
   updsql += strins;
   for(var k=0;k<cellen;k++)
   {
    if(onerow.cells[k].firstchild.id.indexof('lrcdrl_') != -1)
    {
     var selv = onerow.cells[k].firstchild.options[onerow.cells[k].firstchild.selectedindex].value;
     updsql = updsql + "'" + selv + "'";
    }
    else
    {
     updsql = updsql + "'" + onerow.cells[k].firstchild.value + "'";
    }
    if(k+1 != cellen)
    {
     updsql += ",";
    }
    else
    {
     updsql += ") \r";
    }
   }
  }
 }
 var tabbody = tabname.tbodies[0];
 var len = tabbody.rows.length;
 tabbody.rows[len-1].cells[hidindex].childnodes[5].value = updsql;
 return true;
}
function addrow(tab)
{
 var tabbody = tab.tbodies[0];
 var onerow;
 var rowlen = tab.rows.length;
 var cellen = tab.rows[0].cells.length;
 var isadd = tab.getattribute("isadd");
 var isdel = tab.getattribute("isdel");
 if(isdel == 'true')
 {
  cellen = cellen -1;
 }
 var newrow = tabbody.insertrow(rowlen-1);
 newrow.id = "lrcnewrow";
// for(var i = 0;i< cellen;i++)
// {
//  var newcel = newrow.insertcell();< br> // var str="<input type=textname=\"newt\"class=\"lrc_txt_normal\"onfocus=\"this.classname='lrc_txt_edit';this.parentnode.parentnode.bgcolor='#c1d2ee';\" onblur=\"this.classname='lrc_txt_normal';this.parentnode.parentnode.bgcolor='#ffffff';\"/>";
//  newcel.innerhtml =str;
// }
 for(var i = 0;i<cellen;i++)
 {
  var newcel = newrow.insertcell();
  if(tabbody.rows[1].cells[i].childnodes[0].nodetype != 3)
  {
   if(tabbody.rows[1].cells[i].firstchild.id.indexof('lrcdrl_') != -1)
   {
    var innert = tabbody.rows[1].cells[i].innerhtml;
    newcel.innerhtml = innert;
    newcel.firstchild.disabled = false;
   }
   else

本文关键:全编辑WebGrid控件LrcGrid(4)—— 脚本库和样式表
  相关方案
Google
 

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

go top