/// <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]); } } }
///// <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]); } } }
///// <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); } } } }