快乐的程序员

博客园 首页 新随笔 联系 订阅 管理
看过一位大侠写的AjaxTable,我就自己也写了这个一个很件简单的东西,但是本人不是出于好玩,是觉得在使用Ajax中如果使用这样的复杂对象来保存数据也许是一个不错的选择,故而写了这样一个看上去多此一举的东东,请大家批评指正。这里只是写了一些简单功能,后续还要不断完善。
function iDataTable(tbName)
    {   //Begin New
        if(tbName==undefined){tbName="table1"}
        this._Columns=new Array();
        this._Rows=new Array();
        //End New
        this.TableName=tbName;
        this.DataSchema="";
        this.Columns=iColumnsCollection;
        this.Rows=iRowCollection;
       
    }
    function iColumnsCollection(_iColumnIndex)
             {
                this.Add=function(iCol)
                    {
                        if(!this.Exists(iCol.ColumnName))
                        {   iCol.ColumnIndex=this._Columns.length;
                            this._Columns.push(iCol)
                        }
                    }
                this.Remove=function(iCol)
                    {   if(this.Exists(iCol.ColumnName))
                            this._Columns.splice(iCol.ColumnIndex)
                    }
                this.Exists=function(iColumnName)
                    {
                        return (this.IndexOf(iColumnName)>-1);
                    }
                this.IndexOf=function(iColumnName)
                    {
                        for(var _Index=0;_Index<this._Columns.length;_Index++)
                        {
                            if(this._Columns[_Index].ColumnName==iColumnName)
                            {
                                return _Index;
                                break;
                            }
                        }
                        return -1;
                    }
                if(_iColumnIndex!=undefined)
                    {
                        if(_iColumnIndex<0 || _iColumnIndex>this._Columns.length-1)
                        {
                            alert("Column Index Error")
                        }
                        else
                        {
                            return this._Columns[_iColumnIndex];
                        }
                       
                    }
                return this;
             }
   
    function iColumn(_ColumnName,_DataType)
    {
        this.ColumnName=_ColumnName;
        this.DataType=_DataType;//System.String System.Decimal  System.Int32 System.DateTime
        this.ColumnIndex=-1;
    }
   
    function iRowCollection(_iRowIndex)
    {
        this.Add=function(_iRow)
            {
                _iRow.RowIndex=this._Rows.length;
                this._Rows.push(_iRow);
            }
        this.Remove=function(_iRow)
            {
                if(_iRow.RowIndex>-1 && _iRow.RowIndex<this._Rows.length)
                {
                    this._Rows.splice(_iRow.RowIndex);
                }
            }
        if(_iRowIndex!=undefined)
            {
                if(_iRowIndex<0 || _iRowIndex>this._Rows.length-1)
                {
                    alert("Row Index Error")
                }
                else
                {
                    return this._Rows[_iRowIndex];
                }
               
            }
        this.insertRow=function()
            {
                var _iRow=new iRow(this._Columns);
                this.Add(_iRow);
                return _iRow;
            }    
        return this;
    }
    function iRow(_ColumnsX)
    {
        this._Cells=new Array();
        var t=_ColumnsX.length;
        for(var i=0;i<t;i++)
        {
            var _Cell=new iCell();
            _Cell.ColumnName=_ColumnsX[i].ColumnName;
            _Cell.CellIndex=i;
            this._Cells.push(_Cell);
        }
        this.Cells=function(_CellIndex)
            {
                if(_CellIndex!=undefined)
                {return this._Cells[_CellIndex];}
                else
                {
                    return this._Cells;
                }
               
            }
        this.RowIndex=-1;
         return this;
    }
    function iCell(_ColumnName)
    {
        this.value="";
        this.ColumnName=_ColumnName;
        this.CellIndex=-1;
    }
posted on 2008-03-25 10:29  Gram  阅读(1453)  评论(7编辑  收藏  举报