private string GetColumnHeaders(SqlDataReader sdr)
        {
            tableWidth   = 0;
            tableColumns = "tableCols=new Array();\n";
            string header = "<thead><tr>";

            for (colCount = 0; colCount < sdr.FieldCount; colCount++)
            {
                string            colName = sdr.GetName(colCount);
                DataManagerColumn dmc     = dmo.getColumn(colName);
                if (colName.ToLower().CompareTo("uniquekey") == 0)
                {
                    uniqueKeyCol = 0;
                }
                else
                {
                    if (dmc.Hidden != 1)
                    {
                        tableWidth += columnWidth;
                        CreateTableColumnDefinition(colName);
                        header += HeaderCol(sdr, dmc);
                    }
                }
            }
            header += "</tr></thead>\n";
            return(header);
        }
        // Creates a new instance.
        static public DataManagerColumn CreateInstance(long dataManagerOptionId, string name)
        {
            DataManagerColumn dmc = new DataManagerColumn();

            dmc.DataManagerOptionId = dataManagerOptionId;
            dmc.Name = name;
            dmc.save();
            return(dmc);
        }
        // Called each a new record has been loaded by the DataLoader().
        private void RecordLoaded(SqlDataReader sdr)
        {
            DataManagerColumn dmc = new DataManagerColumn();

            dmc.Id     = (int)sdr[sdr.GetOrdinal("id")];
            dmc.Width  = (int)sdr[sdr.GetOrdinal("width")];
            dmc.Hidden = (int)sdr[sdr.GetOrdinal("hidden")];
            dmc.Name   = (string)sdr[sdr.GetOrdinal("name")];
            dmc.DataManagerOptionId = (int)sdr[sdr.GetOrdinal("datamanageroption_id")];
            Records.Add(dmc);
        }
        public void resetHiddenColumns()
        {
            List <RainmakerData> columns = DataManagerColumn.FetchDataSet((" datamanageroption_id=" + Id), null);

            foreach (RainmakerData rd in columns)
            {
                DataManagerColumn dmc = (DataManagerColumn)rd;
                dmc.Hidden = 0;
                dmc.save();
            }
        }
        // Gets an option column. If that column does not exist it will be
        // created with default values.
        public DataManagerColumn getColumn(string columnName)
        {
            List <RainmakerData> columns = DataManagerColumn.FetchDataSet(("name='" + columnName + "' AND datamanageroption_id=" + Id), null);

            if (columns.Count >= 1)
            {
                return((DataManagerColumn)columns[0]);
            }
            else
            {
                return(DataManagerColumn.CreateInstance(Id, columnName));
            }
        }
        private void copyColumns(int newId)
        {
            List <RainmakerData> columns = DataManagerColumn.FetchDataSet((" datamanageroption_id=" + Id), null);

            foreach (RainmakerData rd in columns)
            {
                DataManagerColumn dmc    = (DataManagerColumn)rd;
                DataManagerColumn newDmc = DataManagerColumn.CreateInstance(newId, dmc.Name);
                newDmc.Hidden = dmc.Hidden;
                newDmc.Width  = dmc.Width;
                newDmc.Name   = dmc.Name;
                newDmc.save();
            }
        }
        private string HeaderCol(SqlDataReader sdr, DataManagerColumn dmc)
        {
            string sortMsg = "";

            if (colCount == (dmo.SortColumn - 1) && (dmo.SortActive == 1))
            {
                if (dmo.SortDirection == 1)
                {
                    sortMsg = "<div class='columnSortDirection'><img src='resources/up.gif' width='15px'/></div>";
                }
                else
                {
                    sortMsg = "<div class='columnSortDirection'><img src='resources/down.gif' width='15px'/></div>";
                }
            }
            columnWidth = (int)dmc.Width;
            if ((colCount == (sdr.FieldCount - 1)))
            {
                return(String.Format(@"
						<td id=""sizer{0}"" class=""gridHeader"" style=""width: {2}px"">
							<table style=""width: 100%; background-color: #CCCCCC; border: 0px solid black"" cellspacing=""0"" cellpadding=""0"">
							<tr>
								<td style=""background-color: #CCCCCC; width: 30px""><input type=""checkbox"" style=""width: 0px; height: 0px; margin-left: 10px"" onclick=""hideColumn('{3}')""/></td>
								<td style=""background-color: #CCCCCC; padding-left: 5px"" onclick=""sortByColumn({0})"">{3}</td>
								<td style=""background-color: #CCCCCC"">{4}</td>
								<td style=""background-color: #CCCCCC"">&nbsp</td>
							</tr>
							</table>
						</td>"                        ,
                                     colCount, colCount, columnWidth, dmc.Name, sortMsg));
            }
            else
            {
                return(String.Format(@"
						<td id=""sizer{0}"" class=""gridHeader"" style=""width: {2}px"">
							<table style=""width: 100%; background-color: #CCCCCC; border: 0px solid black"" cellspacing=""0"" cellpadding=""0"">
							<tr>
								<td style=""background-color: #CCCCCC; width: 30px""><input type=""checkbox"" style=""width: 0px; height: 0px; margin-left: 10px"" onclick=""hideColumn('{3}')""/></td>
								<td style=""background-color: #CCCCCC; padding-left: 5px"" onclick=""sortByColumn({0})"">{3}</td>
								<td style=""background-color: #CCCCCC"">{4}</td>
								<td class=""columnDragger"" style=""background-color: #666666"" onmousedown=""resizeColumnStart(event, '{0}', '{1}')"">&nbsp</td>
							</tr>
							</table>
						</td>"                        ,
                                     colCount, (colCount + 1), columnWidth, dmc.Name, sortMsg));
            }
        }
        private string GetRow(SqlDataReader sdr)
        {
            ToggleBackgroundColor();
            string row = "<tr>";

            for (int i = 0; i < sdr.FieldCount; i++)
            {
                string dataType = (string)sdr.GetFieldType(i).ToString();
                string value    = (string)sdr[i].ToString();
                value = value.Replace("'", "");
                if (i == uniqueKeyCol)
                {
                    // Just record this value so it can be tracked later.
                    rowKeys += String.Format("rowKeys[{0}] = {{id: {1}}};\n", (rowCount - 1), value);
                }
                else
                {
                    string colName      = sdr.GetName(i);
                    string chooseAction = String.Format(@"onclick=""chooseCell({0}, {1})""", i, rowCount);
                    if (colName == "PhoneNum")
                    {
                        chooseAction = "";
                    }
                    DataManagerColumn dmc = dmo.getColumn(colName);
                    if (dmc.Hidden != 1)
                    {
                        // Add this column to the data set that will be displayed.
                        if (i == 1)
                        {
                            row += String.Format("<td id=\"{0}x{1}\" dataType=\"{3}\" class=\"left\" style=\"background-color: {4}\" {5}>{2}</td>", i, rowCount, value, dataType, backgroundColor, chooseAction);
                        }
                        else if (i == (sdr.FieldCount - 1))
                        {
                            row += String.Format("<td id=\"{0}x{1}\" dataType=\"{3}\" class=\"right\" style=\"background-color: {4}\" {5}>{2}</td>", i, rowCount, value, dataType, backgroundColor, chooseAction);
                        }
                        else
                        {
                            row += String.Format("<td id=\"{0}x{1}\" dataType=\"{3}\" style=\"background-color: {4}\" {5}>{2}</td>", i, rowCount, value, dataType, backgroundColor, chooseAction);
                        }
                    }
                }
            }
            row += "</tr>\n\n";
            rowCount++;
            return(row);
        }
        private string GetCSVColumnHeaders(SqlDataReader sdr)
        {
            string csv = "";

            for (colCount = 0; colCount < sdr.FieldCount; colCount++)
            {
                string            colName = sdr.GetName(colCount);
                DataManagerColumn dmc     = dmo.getColumn(colName);
                if (dmc.Hidden != 1)
                {
                    if (csv.Length > 0)
                    {
                        csv += ", ";
                    }
                    csv += String.Format("{0}", colName);
                }
            }
            csv += "\n";
            return(csv);
        }
        private string GetCSVRow(SqlDataReader sdr)
        {
            string csv = "";

            for (int i = 0; i < sdr.FieldCount; i++)
            {
                string            colName = sdr.GetName(i);
                DataManagerColumn dmc     = dmo.getColumn(colName);
                if (dmc.Hidden != 1)
                {
                    string value = (string)sdr[i].ToString();
// THIS MAY BE BAD BUT IT HIDES COMMAS FROM TH OUTPUT
                    value = value.Replace(",", "");
                    if (csv.Length > 0)
                    {
                        csv += ", ";
                    }
                    csv += String.Format("{0}", value);
                }
            }
            csv += "\n";
            return(csv);
        }
        // Gets a set of records from the Campaign table.
        static public List <RainmakerData> FetchDataSet(string options, string order)
        {
            DataManagerColumn rc = new DataManagerColumn();

            return(rc.GetDataSet(options, order));
        }