예제 #1
0
        /// <summary>
        /// 绑定行的值
        /// </summary>
        internal void DataBindRow()
        {
            GridColumnCollection columns = _grid.AllColumns;

            //int columnsCount = columns.Count;
            //// 如果Grid启用RowExpander,需要附加额外的数据
            //if (!String.IsNullOrEmpty(Grid.RowExpander.DataFormatString))
            //{
            //    columnsCount += Grid.RowExpander.DataFields.Length;
            //}

            // 计算每列的值
            Values = new string[columns.Count];
            //ExtraValues = new object[columns.Count];
            States = new object[columns.Count];
            int i = 0;

            for (int count = columns.Count; i < count; i++)
            {
                GridColumn column = columns[i];
                Values[i] = StrimColumnValue(column.GetColumnValue(this));

                if (column.PersistState)
                {
                    States[i] = column.GetColumnState(this);
                }
            }
            //// 如果Grid启用RowExpander,需要附加额外的数据
            //if (!String.IsNullOrEmpty(Grid.RowExpander.DataFormatString))
            //{
            //    foreach (string field in Grid.RowExpander.DataFields)
            //    {
            //        Values[i++] = GetPropertyValue(field).ToString();
            //    }
            //}


            // 计算DataKeys的值
            if (_grid.DataKeyNames != null)
            {
                string[] keyNames = _grid.DataKeyNames;
                DataKeys = new object[keyNames.Length];
                for (int j = 0, count = keyNames.Length; j < count; j++)
                {
                    DataKeys[j] = GetPropertyValue(keyNames[j]);
                }
            }
        }
예제 #2
0
        ///// <summary>
        ///// 绑定子控件
        ///// </summary>
        //protected override void DataBindChildren()
        //{
        //    base.DataBindChildren();

        //    DataBindRow();
        //}

        /// <summary>
        /// 绑定行的值
        /// </summary>
        internal void DataBindRow()
        {
            foreach (GridRowControl tplCtrl in TemplateContainers)
            {
                if (tplCtrl != null)
                {
                    tplCtrl.DataBind();
                }
            }


            Collection <GridColumn> columns = _grid.AllColumns;

            // 计算每列的值
            Values = new string[columns.Count];
            States = new object[columns.Count];

            for (int i = 0, count = columns.Count; i < count; i++)
            {
                GridColumn column = columns[i];
                Values[i] = RemoveNewLine(column.GetColumnValue(this));

                if (column.PersistState)
                {
                    States[i] = column.GetColumnState(this);
                }
            }

            // 计算DataKeys的值
            if (_grid.DataKeyNames != null)
            {
                string[] keyNames = _grid.DataKeyNames;
                DataKeys = new object[keyNames.Length];
                for (int j = 0, count = keyNames.Length; j < count; j++)
                {
                    DataKeys[j] = GetPropertyValue(keyNames[j]);
                }
            }
        }
예제 #3
0
        ///// <summary>
        ///// 绑定子控件
        ///// </summary>
        //protected override void DataBindChildren()
        //{
        //    base.DataBindChildren();

        //    DataBindRow();
        //}

        /// <summary>
        /// 绑定行的值
        /// </summary>
        internal void DataBindRow()
        {
            // DataIDField
            if (!String.IsNullOrEmpty(Grid.DataIDField))
            {
                RowID = GetPropertyValue(Grid.DataIDField).ToString();
            }
            else
            {
                // 如果表格未定义 DataIDField,则自动生成一个 RowId
                //RowID = GridRowIDManager.Instance.GetNextGridRowID();

                // 如果表格未定义 DataIDField,则自动生成一个 RowId
                // 使用 rowIndex 来组装 RowId,在页面回发过程中相对比较稳定
                RowID = String.Format("frow{0}", RowIndex);
            }



            foreach (GridTemplateContainer tplCtrl in TemplateContainers)
            {
                if (tplCtrl != null)
                {
                    tplCtrl.DataBind();
                }
            }


            Collection <GridColumn> columns = _grid.AllColumns;

            // 计算每列的值
            Values = new object[columns.Count];
            States = new object[columns.Count];

            for (int i = 0, count = columns.Count; i < count; i++)
            {
                GridColumn column = columns[i];
                Values[i] = column.GetColumnValue(this);

                if (column.PersistState)
                {
                    States[i] = column.GetColumnState(this);
                }
            }

            // 计算DataKeys的值
            if (_grid.DataKeyNames != null)
            {
                string[] keyNames = _grid.DataKeyNames;
                DataKeys = new object[keyNames.Length];
                for (int j = 0, count = keyNames.Length; j < count; j++)
                {
                    string keyName = keyNames[j];

                    if (_grid.AllowCellEditing)
                    {
                        // 如果允许单元格编辑,则DataKeys的值类型尝试使用列定义的FieldType
                        // 确保用户在客户端修改了DataKeyNames中定义的值后,同时在Grid的LoadPostData中更新这个值
                        if (_grid.cellEditingDataKeyNameField.ContainsKey(keyName))
                        {
                            DataKeys[j] = _grid.cellEditingDataKeyNameField[keyName].GetColumnValue(this);
                        }
                    }

                    if (DataKeys[j] == null)
                    {
                        DataKeys[j] = GetPropertyValue(keyName);
                    }
                }
            }
        }