public RowColumnsBindingInnerExpr(DataTable table, string[] colArr, string col, string expresion, IRowValidator pValidator) : base(table, colArr, col, expresion, pValidator) { tableSource.ColumnChanged += new DataColumnChangeEventHandler(table_ColumnChangedForRow); if (ToolColumn.isColumnFullName(column)) { foreach (DataRow row in tableSource.Rows) { table_ColumnChangedForRow(tableSource, new DataColumnChangeEventArgs(row, tableSource.Columns[columns[0]], row[columns[0]])); } } }
public TablesColumnsBinding(DataTable tableS, DataTable tableD, string[] columnS, string[] columnD, bool inherit) { tableS_ = tableS; columnS_ = columnS; tableD_ = tableD; columnD_ = columnD; tableS_.ColumnChanged += new DataColumnChangeEventHandler(tableS__ColumnChanged); if (inherit) { tableD_.RowChanged += new DataRowChangeEventHandler(tableD__ColumnChanged); } for (int d = 0; d < columnD_.Length; ++d) { if (ToolColumn.isColumnFullName(columnD_[d])) { ToolColumn.setColumnValue(tableD_, columnD_[d], ToolColumn.getColumnLastValue(tableS_, columnS_[d], ToolCell.getCellTypeDefaulValue(tableS_.Columns[columnS_[d]].DataType))); } } }
void distribute(DataRow row, string[] cols) { if (validator.check(row)) { if (needUpdate(row, cols)) { bool drivedUpdateMode = flags.isFlagEnabled(UpdateTypeFlags.__spe__updateIfDrived); if (drivedUpdateMode) { bool hasFull = false; for (int i = 0; i < allChildCol.Length; ++i) { if (ToolColumn.isColumnFullName(allChildCol[i])) { hasFull = true; } } if (!hasFull) { return; } } //getData source.getBuilder().reset(); for (int i = 0; i < cols.Length; ++i) { string col = ToolColumn.extractColumnName(getColMap(cols[i])); string tab = ToolColumn.extractTableName(getColMap(cols[i])); object val = row[cols[i]]; if ((tab != string.Empty) && (col != string.Empty)) { source.getBuilder().addParameterValueTable(tab, col, val); } else if (col != string.Empty) { source.getBuilder().addParameterValue(col, val); } else if (col == string.Empty) { source.getBuilder().addFreeParameterValue(val); } } IDictionary dicData = ToolRow.convertFirstToDictionary(source.getAll()); // if (dicData != null) { //Has data string[] tmpChildCol = (drivedUpdateMode ? ToolColumn.selectFullNameCols(updateChildCol) : updateChildCol); for (int i = 0; i < tmpChildCol.Length; ++i) { ToolCell.set(row, tmpChildCol[i], dicData[getColMap(tmpChildCol[i])]); } } else { //No data if (!flags.isFlagEnabled(UpdateTypeFlags.disableEditCancel)) { row.CancelEdit(); } else { if (flags.isFlagEnabled(UpdateTypeFlags.setTypeDefaultToDrivedChild)) { ToolRow.initTableNewRow(row, (drivedUpdateMode ? ToolColumn.selectFullNameCols(childCol) : childCol)); } if (flags.isFlagEnabled(UpdateTypeFlags.setTypeDefaultToRelChild)) { ToolRow.initTableNewRow(row, (drivedUpdateMode ? ToolColumn.selectFullNameCols(bindChildCol) : bindChildCol)); } } } } } }