全编辑WebGrid控件LrcGrid(5)—— 构造函数、变量和属性

类别:Asp 点击:0 评论:0 推荐:

全编辑WebGrid控件LrcGrid(5)—— 构造函数、变量和属性

LrcGrid从System.Web.UI.WebControls.Table继承,实现INamingContainer接口

元数据属性和构造函数:元数据声明了控件的标签和默认属性,构造函数为控件一些属性指定了默认值.

 [
 ToolboxData("<{0}:LrcGrid runat=server></{0}:LrcGrid>"),
 DefaultProperty("SelSql")
 ]
 public class LrcGrid : System.Web.UI.WebControls.Table,INamingContainer
 {     public LrcGrid() : base()
  {
   Font.Name = "verdana";
   Font.Size = FontUnit.Point(8);
   BackColor = Color.White;
   ForeColor = Color.Black;
   BorderStyle = BorderStyle.Outset;
   BorderWidth = Unit.Parse("1px");
   PagerStyle = PagerStyle.NextPrev;
   CurrentPageIndex = 0;
   ItemsPerPage = 15;
   TotalPages = -1;
   IsPager = true;
  } ......

声明私有变量:

和分页相关的私有变量

  #region 和分页有关的私有变量
  // ***********************************************************************
  private string CurrentPageText = "<b>第</b> {0} <b>页,共</b> {1}<b>页</b>";
  private string NoPageSelectedText = "无选择页.";
  private string QueryPageCommandText = "SELECT * FROM " +
   "(SELECT TOP {0} * FROM " +
   "(SELECT TOP {1} * FROM ({2}) AS t0 ORDER BY {3} {4}) AS t1 " +
   "ORDER BY {3} {5}) AS t2 " +
   "ORDER BY {3}";
  private string QueryCountCommandText = "SELECT COUNT(*) FROM ({0}) AS t0";
  // ***********************************************************************
  #endregion

和属性有关的私有变量:

  char[] chra = {','};
  char[] chrb = {'|'};
  //private DataSet _ds;
  //private DataTable _dt;
  private string tabN;
  private string _priKey;
  private string _editCol = "1";
  private string _colsStr = "";
  private string _colsStrCN = "";
  private string _fkCol = "";
  private bool _isSort = true;
  private bool _isRowEdit;
  private bool _isTabChg = true;
  private bool _isDel;
  private bool _isAdd;
  private string _conn;
  private Color _titColor;


控件属性,属性都有注释,不再细述:

  /// <summary>
  /// 外键指示
  /// </summary>
  [
  Category("关键"),
  Description("外键.格式:本表列名|外键列名|要显示的外键列名|外键表名,.....")
  ]
  public string FkCol
  {
   get{return _fkCol;}
   set{_fkCol = value;}
  }
  /// <summary>
  /// 是否显示删除功能
  /// </summary>
  [
  Category("关键"),
  Description("是否显示删除功能")
  ]
  public bool IsDel
  {
   get{return _isDel;}
   set{_isDel = value;}
  }
  /// <summary>
  /// 是否显示添加功能
  /// </summary>
  [
  Category("关键"),
  Description("是否显示添加功能")
  ]
  public bool IsAdd
  {
   get{return _isAdd;}
   set{_isAdd = value;}
  }
  /// <summary>
  /// 公共属性:显示列名
  /// </summary>
  [
  Category("关键"),
  Description("显示列名")
  ]
  public string ColsStrCN
  {
   get{return _colsStrCN;}
   set{_colsStrCN = value;}
  }
  /// <summary>
  /// 主表的表名
  /// </summary>
  [
  Category("关键"),
  Description("主表的表名")
  ]
  public string TabN
  {
   get{return tabN;}
   set{tabN = value;}
  }
  /// <summary>
  /// 主表的列名列表
  /// </summary>
  [
  Category("关键"),
  Description("主表的列名列表")
  ]
  public string ColsStr
  {
   get{return _colsStr;}
   set{_colsStr = value;}
  }
  /// <summary>
  /// 是否用回车键跳转焦点
  /// </summary>
  [
  Category("关键"),
  Description("是否用回车键跳转焦点")
  ]
  public bool IsTabChg
  {
   get{return _isTabChg;}
   set{_isTabChg = value;}
  }
  /// <summary>
  /// 选择SQL语句.注意列名不能用'*'
  /// </summary>
  [
  Category("关键"),
  Description("选择SQL语句.注意列名不能用'*'")
  ]
  public string SelSql
  {
   get{return (string)ViewState["lrcSelSql"];}
   set{ViewState["lrcSelSql"] = value;}
  }
  /// <summary>
  /// 主键列名,如有多个请用","隔开
  /// </summary>
  [
  Category("关键"),
  Description("主键列名,如有多个请用\",\"隔开")
  ]
  public string PriKey
  {
   get{return _priKey;}
   set{_priKey = value;}
  }
  /// <summary>
  /// 标题行颜色
  /// </summary>
  [
  Category("关键"),
  Description("标题行颜色")
  ]     public Color TitColor
  {
   get{ return _titColor;}
   set{ _titColor = value;}
  }
  /// <summary>
  /// 要进行编辑的列,列名用","隔开,0为不编辑,1为全编辑
  /// </summary>
  [
  Category("关键"),
  Description("要进行编辑的列,列名用\",\"隔开,0为不编辑,1为全编辑")
  ]
  public string EditCol
  {
   get{return _editCol;}
   set{_editCol = value;}
  }
  [
  Browsable(false)
  ]
  public string UpdSql
  {
   get{return ((HtmlInputHidden)(this.FindControl("lrcHid_UpdSql"))).Value;}
  }
  /// <summary>
  /// 是否提供排序功能
  /// </summary>
  [
  Category("关键"),
  Description("是否提供排序功能")
  ]
  public bool IsSort
  {
   get{return _isSort;}
   set{_isSort = value;}
  }
  /// <summary>
  /// 可否编辑行
  /// </summary>
  [
  Category("关键"),
  Description("可否编辑行")
  ]
  public bool IsRowEdit
  {
   get{return _isRowEdit;}
   set{_isRowEdit = value;}
  }
  /// <summary>
  /// 要绑定室控件的数据集,可以在进行修改,
  /// 但是请与以上各属性对应
  /// </summary>
  [
  Browsable(false)
  ]
  public DataSet DbSet
  {
   get
   {
    if(ViewState["lrcDs"] != null)
    {
     DataSet _dbSet = new DataSet();
     System.IO.StringReader sr = new System.IO.StringReader((string)ViewState["lrcDs"]);
     _dbSet.ReadXml(sr);
     return _dbSet;
    }
    else
    {
     return null;
    }
   }
   set
   {
    if(value != null)
    {
     System.IO.StringWriter sw = new System.IO.StringWriter();
     value.WriteXml(sw);
     ViewState["lrcDs"] = sw.ToString();
    }
    else
    {
     ViewState["lrcDs"] = null;
    }
   }
  }
  /// <summary>
  /// 排序字段名
  /// 不可在设计时设置
  /// </summary>
  [
  Browsable(false)
  ]
  public string SortField
  {
   get
   {
    string s = (string)ViewState["lrcSortField"];
    return ((s == null)?String.Empty : s);
   }
   set
   {
    ViewState["lrcSortField"] = value;
   }
  }
  /// <summary>
  /// 排序类型
  /// 不可在设计时设置
  /// </summary>
  [
  Browsable(false)
  ]
  public string SortType
  {
   get
   {
    string s = (string)ViewState["lrcSortType"];
    return (( s == null)?String.Empty : s);
   }
   set
   {
    ViewState["lrcSortType"] = value;
   }
  }
  /// <summary>
  /// 数据库连接字符串,默认从 web.config 中读取
  /// </summary>
  [
  Category("关键"),
  Description("数据库连接字符串")
  ]
  public string Conn
  {
   get
   {
    if(_conn == null || _conn == "")
    {
     return System.Configuration.ConfigurationSettings.AppSettings["Conn"];
    }
    else
    {
     return _conn;
    }
   }
   set{ _conn = value;}
  }
  /// <summary>
  /// 列名数组
  /// </summary>
  [
  Browsable(false)
  ]
  public string[] cols
  {
   get{return _colsStr.Split(chra);}
  }
  /// <summary>
  /// 显示列名数组
  /// </summary>
  [
  Browsable(false)
  ]
  private string[] colsA
  {
   get{return _colsStrCN.Split(chra);}
  }
  /// <summary>
  /// 主键列名数组
  /// </summary>
  [
  Browsable(false)
  ]
  public string[] _priKeyAr
  {
   get{return _priKey.Split(chra);}
  }
  /// <summary>
  /// 主键列索引数组
  /// </summary>
  [
  Browsable(false)
  ]
  public string[] PriKeyIndex
  {
   get
   {
    string[] index = new string[_priKeyAr.Length];
    for(int i=0;i<_priKeyAr.Length;i++)
    {
     for(int ii=0;ii<cols.Length;ii++)
     {
      if(cols[ii] == _priKeyAr[i])
       index[i] = ii.ToString();
     }
    }
    return index;
   }
  }  
  /// <summary>
  /// 编辑列名数组
  /// </summary>
  [
  Browsable(false)
  ]
  public string[] _editColAr
  {
   get{return _editCol.Split(chra);}
  }
  /// <summary>
  /// 编辑列索引数组
  /// </summary>
  [
  Browsable(false)
  ]
  public string[] EditColIndex
  {
   get
   {
    string[] index = new string[_editColAr.Length];
    if(_editColAr.Length == 1 && _editColAr[0] == "1")
    {
     index[0] = "LrcAllEdit";
    }
    else if(_editColAr.Length == 1 && _editColAr[0] == "0")
    {
     index[0] = "LrcNoEdit";
    }
    else
    {
     for(int i=0;i<_editColAr.Length;i++)
     {
      for(int ii=0;ii<cols.Length;ii++)
      {
       if(cols[ii] == _editColAr[i])
        index[i] = ii.ToString();
      }
     }
    }
    return index;
   }
  }
  /// <summary>
  /// 外键列二维数组
  /// </summary>
  [
  Browsable(false)
  ]
  public string[,] FkColArray
  {
   get
   {
    if(_fkCol == "")
    {
     return null;
    }
    else
    {
     string[] a = _fkCol.Split(chra);
     int num = a.Length;
     string[,] fkA = new string[num,5];
     for(int i=0;i<num;i++)
     {
      string[] b = a[i].Split(chrb);
      string fkIndex = "";
      for(int ii=0;ii<cols.Length;ii++)
      {
       if(cols[ii] == b[0])
       {
        fkIndex = ii.ToString();
        fkA[i,0] = fkIndex;
       }
      }      
      for(int j=0;j<4;j++)
      {
       fkA[i,j+1] = b[j];
      }
     }
     return fkA;
    }
   }
  }

本文地址:http://com.8s8s.com/it/it7419.htm