public static void AppendEditViewFields(DataView dvFields, HtmlTable tbl, System.Data.SqlClient.SqlDataReader rdr, CommandEventHandler Page_Command, bool bLayoutMode, string sEDIT_NAME) { bool bIsMobile = false; CRMPage Page = tbl.Page as CRMPage; if (Page != null) bIsMobile = Page.IsMobile; HtmlTableRow tr = null; int nRowIndex = tbl.Rows.Count - 1; int nColIndex = 0; HtmlTableCell tdLabel = null; HtmlTableCell tdField = null; if (bLayoutMode) tbl.Border = 1; if (dvFields.Count == 0 && tbl.Rows.Count <= 1) tbl.Visible = false; DataView vwSchema = null; if (rdr != null) vwSchema = new DataView(rdr.GetSchemaTable()); bool bEnableTeamManagement = Common.Config.enable_team_management(); bool bRequireTeamManagement = Common.Config.require_team_management(); bool bRequireUserAssignment = Common.Config.require_user_assignment(); HttpSessionState Session = HttpContext.Current.Session; foreach (DataRowView row in dvFields) { int gID = TypeConvert.ToInteger(row["ID"]); int nFIELD_INDEX = TypeConvert.ToInteger(row["FIELD_INDEX"]); string sFIELD_TYPE = TypeConvert.ToString(row["FIELD_TYPE"]); string sDATA_LABEL = TypeConvert.ToString(row["DATA_LABEL"]); string sDATA_FIELD = TypeConvert.ToString(row["DATA_FIELD"]); string sDISPLAY_FIELD = TypeConvert.ToString(row["DISPLAY_FIELD"]); string sCACHE_NAME = TypeConvert.ToString(row["CACHE_NAME"]); bool bDATA_REQUIRED = TypeConvert.ToBoolean(row["DATA_REQUIRED"]); bool bUI_REQUIRED = TypeConvert.ToBoolean(row["UI_REQUIRED"]); string sONCLICK_SCRIPT = TypeConvert.ToString(row["ONCLICK_SCRIPT"]); string sFORMAT_SCRIPT = TypeConvert.ToString(row["FORMAT_SCRIPT"]); short nFORMAT_TAB_INDEX = TypeConvert.ToShort(row["FORMAT_TAB_INDEX"]); int nFORMAT_MAX_LENGTH = TypeConvert.ToInteger(row["FORMAT_MAX_LENGTH"]); int nFORMAT_SIZE = TypeConvert.ToInteger(row["FORMAT_SIZE"]); int nFORMAT_ROWS = TypeConvert.ToInteger(row["FORMAT_ROWS"]); int nFORMAT_COLUMNS = TypeConvert.ToInteger(row["FORMAT_COLUMNS"]); int nCOLSPAN = TypeConvert.ToInteger(row["COLSPAN"]); int nROWSPAN = TypeConvert.ToInteger(row["ROWSPAN"]); string sLABEL_WIDTH = TypeConvert.ToString(row["LABEL_WIDTH"]); string sFIELD_WIDTH = TypeConvert.ToString(row["FIELD_WIDTH"]); int nDATA_COLUMNS = TypeConvert.ToInteger(row["DATA_COLUMNS"]); string sFIELD_VALIDATOR_MESSAGE = TypeConvert.ToString(row["FIELD_VALIDATOR_MESSAGE"]); string sVALIDATION_TYPE = TypeConvert.ToString(row["VALIDATION_TYPE"]); string sREGULAR_EXPRESSION = TypeConvert.ToString(row["REGULAR_EXPRESSION"]); string sDATA_TYPE = TypeConvert.ToString(row["DATA_TYPE"]); string sMININUM_VALUE = TypeConvert.ToString(row["MININUM_VALUE"]); string sMAXIMUM_VALUE = TypeConvert.ToString(row["MAXIMUM_VALUE"]); string sCOMPARE_OPERATOR = TypeConvert.ToString(row["COMPARE_OPERATOR"]); if (nDATA_COLUMNS == 0) nDATA_COLUMNS = 2; if (!bLayoutMode && sDATA_FIELD == "TEAM_ID") { if (!bEnableTeamManagement) { sFIELD_TYPE = "Blank"; bUI_REQUIRED = false; } else { if (bRequireTeamManagement) bUI_REQUIRED = true; } } if (!bLayoutMode && sDATA_FIELD == "ASSIGNED_USER_ID") { if (bRequireUserAssignment) bUI_REQUIRED = true; } if (bIsMobile && String.Compare(sFIELD_TYPE, "AddressButtons", true) == 0) { continue; } if ((nCOLSPAN >= 0 && nColIndex == 0) || tr == null || bIsMobile) { nRowIndex++; tr = new HtmlTableRow(); tbl.Rows.Insert(nRowIndex, tr); } if (bLayoutMode) { HtmlTableCell tdAction = new HtmlTableCell(); tr.Cells.Add(tdAction); tdAction.Attributes.Add("class", "tabDetailViewDL"); tdAction.NoWrap = true; Literal litIndex = new Literal(); tdAction.Controls.Add(litIndex); litIndex.Text = " " + nFIELD_INDEX.ToString() + " "; ImageButton btnMoveUp = CreateLayoutImageButtonSkin(gID, "Layout.MoveUp", nFIELD_INDEX, Translation.GetTranslation.Term("Dropdown.LNK_UP"), "uparrow_inline", Page_Command); ImageButton btnMoveDown = CreateLayoutImageButtonSkin(gID, "Layout.MoveDown", nFIELD_INDEX, Translation.GetTranslation.Term("Dropdown.LNK_DOWN"), "downarrow_inline", Page_Command); ImageButton btnInsert = CreateLayoutImageButtonSkin(gID, "Layout.Insert", nFIELD_INDEX, Translation.GetTranslation.Term("Dropdown.LNK_INS"), "plus_inline", Page_Command); ImageButton btnEdit = CreateLayoutImageButtonSkin(gID, "Layout.Edit", nFIELD_INDEX, Translation.GetTranslation.Term("Dropdown.LNK_EDIT"), "edit_inline", Page_Command); ImageButton btnDelete = CreateLayoutImageButtonSkin(gID, "Layout.Delete", nFIELD_INDEX, Translation.GetTranslation.Term("Dropdown.LNK_DELETE"), "delete_inline", Page_Command); tdAction.Controls.Add(btnMoveUp); tdAction.Controls.Add(btnMoveDown); tdAction.Controls.Add(btnInsert); tdAction.Controls.Add(btnEdit); tdAction.Controls.Add(btnDelete); } Literal litLabel = new Literal(); if (!TypeConvert.IsEmptyString(sDATA_FIELD)) litLabel.ID = sDATA_FIELD + "_LABEL"; if (nCOLSPAN >= 0 || tdLabel == null || tdField == null) { tdLabel = new HtmlTableCell(); tdField = new HtmlTableCell(); tr.Cells.Add(tdLabel); tr.Cells.Add(tdField); if (nCOLSPAN > 0) { tdField.ColSpan = nCOLSPAN; if (bLayoutMode) tdField.ColSpan++; } tdLabel.Attributes.Add("class", "dataLabel"); tdLabel.VAlign = "top"; tdLabel.Width = sLABEL_WIDTH; tdField.Attributes.Add("class", "dataField"); tdField.VAlign = "top"; if (nCOLSPAN == 0) tdField.Width = sFIELD_WIDTH; tdLabel.Controls.Add(litLabel); if (bLayoutMode) litLabel.Text = sDATA_LABEL; else if (sDATA_LABEL.IndexOf(".") >= 0) litLabel.Text = Translation.GetTranslation.Term(sDATA_LABEL); else if (!TypeConvert.IsEmptyString(sDATA_LABEL) && rdr != null) { litLabel.Text = sDATA_LABEL; if (vwSchema != null) { vwSchema.RowFilter = "ColumnName = '" + TypeConvert.EscapeSQL(sDATA_LABEL) + "'"; if (vwSchema.Count > 0) litLabel.Text = TypeConvert.ToString(rdr[sDATA_LABEL]) + Translation.GetTranslation.Term("Calls.LBL_COLON"); } } else litLabel.Text = sDATA_LABEL; // " "; if (!bLayoutMode && bUI_REQUIRED) { Label lblRequired = new Label(); tdLabel.Controls.Add(lblRequired); lblRequired.CssClass = "required"; lblRequired.Text = Translation.GetTranslation.Term(".LBL_REQUIRED_SYMBOL"); } } if (String.Compare(sFIELD_TYPE, "Blank", true) == 0) { Literal litField = new Literal(); tdField.Controls.Add(litField); if (bLayoutMode) { litLabel.Text = "*** BLANK ***"; litField.Text = "*** BLANK ***"; } else { litLabel.Text = " "; litField.Text = " "; } } else if (String.Compare(sFIELD_TYPE, "Label", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { Literal litField = new Literal(); tdField.Controls.Add(litField); tdField.VAlign = "middle"; litField.ID = sDATA_FIELD; if (bLayoutMode) litField.Text = sDATA_FIELD; else if (sDATA_FIELD.IndexOf(".") >= 0) litField.Text = Translation.GetTranslation.Term(sDATA_FIELD); else if (rdr != null) litField.Text = TypeConvert.ToString(rdr[sDATA_FIELD]); } } else if (String.Compare(sFIELD_TYPE, "ListBox", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { ListControl lstField = null; if (nFORMAT_ROWS > 0) { ListBox lb = new ListBox(); lb.SelectionMode = ListSelectionMode.Multiple; lb.Rows = nFORMAT_ROWS; lstField = lb; } else { lstField = new KeySortDropDownList(); } tdField.Controls.Add(lstField); lstField.ID = sDATA_FIELD; lstField.TabIndex = nFORMAT_TAB_INDEX; if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { if (!TypeConvert.IsEmptyString(sCACHE_NAME) && (bLayoutMode || !tbl.Page.IsPostBack)) { lstField.DataValueField = "NAME"; lstField.DataTextField = "DISPLAY_NAME"; lstField.DataSource = CRMCache.List(sCACHE_NAME); if (sCACHE_NAME != "lead_status_dom") { if (sCACHE_NAME != "Currencies") { lstField.Attributes.Add("class", "dropdown"); } } if (sCACHE_NAME != "program_plan" || sCACHE_NAME != "Currencies") { if (sCACHE_NAME != "Currencies") { lstField.Attributes.Add("dom", sCACHE_NAME); } } lstField.DataBind(); if (!TypeConvert.IsEmptyString(sONCLICK_SCRIPT)) lstField.Attributes.Add("onchange", sONCLICK_SCRIPT); if (!bUI_REQUIRED) { lstField.Items.Insert(0, new ListItem(Translation.GetTranslation.Term(".LBL_NONE"), "")); lstField.DataBound += new EventHandler(ListControl_DataBound_AllowNull); } } if (rdr != null) { string sVALUE = TypeConvert.ToString(rdr[sDATA_FIELD]); if (nFORMAT_ROWS > 0 && sVALUE.StartsWith("<?xml")) { XmlDocument xml = new XmlDocument(); xml.LoadXml(sVALUE); XmlNodeList nlValues = xml.DocumentElement.SelectNodes("Value"); foreach (XmlNode xValue in nlValues) { foreach (ListItem item in lstField.Items) { if (item.Value == xValue.InnerText) item.Selected = true; } } } else { lstField.SelectedValue = sVALUE; } } else if (rdr == null && !tbl.Page.IsPostBack && sCACHE_NAME == "AssignedUser") { if (nFORMAT_ROWS == 0) lstField.SelectedValue = CRMSecurity.USER_ID.ToString(); } } if (bLayoutMode) { Literal litField = new Literal(); litField.Text = sDATA_FIELD; tdField.Controls.Add(litField); } } } else if (String.Compare(sFIELD_TYPE, "CheckBox", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { CheckBox chkField = new CheckBox(); tdField.Controls.Add(chkField); chkField.ID = sDATA_FIELD; chkField.CssClass = "checkbox"; chkField.TabIndex = nFORMAT_TAB_INDEX; if (rdr != null) chkField.Checked = TypeConvert.ToBoolean(rdr[sDATA_FIELD]); if (!TypeConvert.IsEmptyString(sONCLICK_SCRIPT)) chkField.Attributes.Add("onclick", sONCLICK_SCRIPT); if (bLayoutMode) { Literal litField = new Literal(); litField.Text = sDATA_FIELD; tdField.Controls.Add(litField); chkField.Enabled = false; } } } else if (String.Compare(sFIELD_TYPE, "ChangeButton", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { if (sDATA_LABEL == "PARENT_TYPE") { tdLabel.Controls.Clear(); DropDownList lstField = new KeySortDropDownList(); tdLabel.Controls.Add(lstField); lstField.ID = sDATA_LABEL; lstField.TabIndex = nFORMAT_TAB_INDEX; lstField.Attributes.Add("onChange", "ChangeParentType();"); if (bLayoutMode || !tbl.Page.IsPostBack) { lstField.DataValueField = "NAME"; lstField.DataTextField = "DISPLAY_NAME"; lstField.DataSource = CRMCache.List("record_type_display"); lstField.DataBind(); if (rdr != null) { lstField.ClearSelection(); lstField.SelectedValue = TypeConvert.ToString(rdr[sDATA_LABEL]); } } } TextBox txtNAME = new TextBox(); tdField.Controls.Add(txtNAME); txtNAME.ID = sDISPLAY_FIELD; txtNAME.ReadOnly = true; txtNAME.TabIndex = nFORMAT_TAB_INDEX; txtNAME.EnableViewState = false; if (bLayoutMode) { txtNAME.Text = sDISPLAY_FIELD; txtNAME.Enabled = false; } else if (tbl.Page.IsPostBack) { if (tbl.Page.Request[txtNAME.UniqueID] != null) txtNAME.Text = TypeConvert.ToString(tbl.Page.Request[txtNAME.UniqueID]); } else if (!TypeConvert.IsEmptyString(sDISPLAY_FIELD) && rdr != null) txtNAME.Text = TypeConvert.ToString(rdr[sDISPLAY_FIELD]); else if (sDATA_FIELD == "TEAM_ID" && rdr == null && !tbl.Page.IsPostBack) txtNAME.Text = CRMSecurity.TEAM_NAME; else if (sDATA_FIELD == "ASSIGNED_USER_ID" && rdr == null && !tbl.Page.IsPostBack) txtNAME.Text = CRMSecurity.USER_NAME; HtmlInputHidden hidID = new HtmlInputHidden(); tdField.Controls.Add(hidID); hidID.ID = sDATA_FIELD; if (!bLayoutMode) { if (!TypeConvert.IsEmptyString(sDATA_FIELD) && rdr != null) { hidID.Value = TypeConvert.ToString(rdr[sDATA_FIELD]); hidID.Value = (TypeConvert.ToGuid(hidID.Value) == Guid.Empty) ? "" : hidID.Value; } else if (sDATA_FIELD == "TEAM_ID" && rdr == null && !tbl.Page.IsPostBack) hidID.Value = CRMSecurity.TEAM_ID.ToString(); else if (sDATA_FIELD == "ASSIGNED_USER_ID" && rdr == null && !tbl.Page.IsPostBack) hidID.Value = CRMSecurity.USER_ID.ToString(); } if (!String.IsNullOrEmpty(CRMSecurity.TEAM_NAME)) { txtNAME.Text = CRMSecurity.TEAM_NAME; } else { InlineQueryDBManager oQuery = new InlineQueryDBManager(); oQuery.CommandText = "select Teams.name,Teams.id from Teams where id in (select t.team_ID from users u " + "inner join Team_Memberships t on u.id = t.USER_ID " + "and u.id ='" + Security.USER_ID.ToString() + "')"; using (DataTable dt = oQuery.GetTable()) { if (dt.Rows.Count > 0 && (sDATA_FIELD != "ASSIGNED_USER_ID" && rdr == null && !tbl.Page.IsPostBack)) { txtNAME.Text = dt.Rows[0]["name"].ToString(); hidID.Value = dt.Rows[0]["id"].ToString(); } } } Literal litNBSP = new Literal(); tdField.Controls.Add(litNBSP); litNBSP.Text = " "; HtmlInputButton btnChange = new HtmlInputButton("button"); tdField.Controls.Add(btnChange); btnChange.ID = sDATA_FIELD + "_btnChange"; btnChange.Attributes.Add("class", "button"); if (!TypeConvert.IsEmptyString(sONCLICK_SCRIPT)) btnChange.Attributes.Add("onclick", sONCLICK_SCRIPT); btnChange.Attributes.Add("title", Translation.GetTranslation.Term(".LBL_SELECT_BUTTON_TITLE")); btnChange.Value = Translation.GetTranslation.Term(".LBL_SELECT_BUTTON_LABEL"); if (sONCLICK_SCRIPT.IndexOf("Popup();") > 0) { litNBSP = new Literal(); tdField.Controls.Add(litNBSP); litNBSP.Text = " "; HtmlInputButton btnClear = new HtmlInputButton("button"); tdField.Controls.Add(btnClear); btnClear.ID = sDATA_FIELD + "_btnClear"; btnClear.Attributes.Add("class", "button"); btnClear.Attributes.Add("onclick", sONCLICK_SCRIPT.Replace("Popup();", "('', '');").Replace("return ", "return Change")); btnClear.Attributes.Add("title", Translation.GetTranslation.Term(".LBL_CLEAR_BUTTON_TITLE")); btnClear.Value = Translation.GetTranslation.Term(".LBL_CLEAR_BUTTON_LABEL"); } if (!bLayoutMode && bUI_REQUIRED && !TypeConvert.IsEmptyString(sDATA_FIELD)) { RequiredFieldValidatorForHiddenInputs reqID = new RequiredFieldValidatorForHiddenInputs(); reqID.ID = sDATA_FIELD + "_REQUIRED"; reqID.ControlToValidate = hidID.ID; reqID.ErrorMessage = Translation.GetTranslation.Term(".ERR_REQUIRED_FIELD"); reqID.CssClass = "required"; reqID.EnableViewState = false; reqID.EnableClientScript = false; reqID.Enabled = false; reqID.Style.Add("padding-left", "4px"); tdField.Controls.Add(reqID); } } } else if (String.Compare(sFIELD_TYPE, "TextBox", true) == 0 || String.Compare(sFIELD_TYPE, "Password", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { TextBox txtField = new TextBox(); tdField.Controls.Add(txtField); txtField.ID = sDATA_FIELD; txtField.TabIndex = nFORMAT_TAB_INDEX; if (nFORMAT_ROWS > 0 && nFORMAT_COLUMNS > 0) { txtField.Rows = nFORMAT_ROWS; txtField.Columns = nFORMAT_COLUMNS; txtField.TextMode = TextBoxMode.MultiLine; } else { txtField.MaxLength = nFORMAT_MAX_LENGTH; txtField.Attributes.Add("size", nFORMAT_SIZE.ToString()); txtField.TextMode = TextBoxMode.SingleLine; } if (bLayoutMode) { txtField.Text = sDATA_FIELD; txtField.ReadOnly = true; } else if (!TypeConvert.IsEmptyString(sDATA_FIELD) && rdr != null) { int nOrdinal = rdr.GetOrdinal(sDATA_FIELD); string sTypeName = rdr.GetDataTypeName(nOrdinal); if (sTypeName == "money" || rdr[sDATA_FIELD].GetType() == typeof(System.Decimal)) txtField.Text = TypeConvert.ToDecimal(rdr[sDATA_FIELD]).ToString("#,##0.00"); else txtField.Text = TypeConvert.ToString(rdr[sDATA_FIELD]); } if (String.Compare(sFIELD_TYPE, "Password", true) == 0) txtField.TextMode = TextBoxMode.Password; if (!bLayoutMode && bUI_REQUIRED && !TypeConvert.IsEmptyString(sDATA_FIELD)) { RequiredFieldValidator reqNAME = new RequiredFieldValidator(); reqNAME.ID = sDATA_FIELD + "_REQUIRED"; reqNAME.ControlToValidate = txtField.ID; reqNAME.ErrorMessage = Translation.GetTranslation.Term(".ERR_REQUIRED_FIELD"); reqNAME.CssClass = "required"; reqNAME.EnableViewState = false; reqNAME.EnableClientScript = false; reqNAME.Enabled = false; reqNAME.Style.Add("padding-left", "4px"); tdField.Controls.Add(reqNAME); } if (!bLayoutMode && !TypeConvert.IsEmptyString(sDATA_FIELD)) { if (sVALIDATION_TYPE == "RegularExpressionValidator" && !TypeConvert.IsEmptyString(sREGULAR_EXPRESSION) && !TypeConvert.IsEmptyString(sFIELD_VALIDATOR_MESSAGE)) { RegularExpressionValidator reqVALIDATOR = new RegularExpressionValidator(); reqVALIDATOR.ID = sDATA_FIELD + "_VALIDATOR"; reqVALIDATOR.ControlToValidate = txtField.ID; reqVALIDATOR.ErrorMessage = Translation.GetTranslation.Term(sFIELD_VALIDATOR_MESSAGE); reqVALIDATOR.ValidationExpression = sREGULAR_EXPRESSION; reqVALIDATOR.CssClass = "required"; reqVALIDATOR.EnableViewState = false; reqVALIDATOR.EnableClientScript = false; reqVALIDATOR.Enabled = false; reqVALIDATOR.Style.Add("padding-left", "4px"); tdField.Controls.Add(reqVALIDATOR); } } } } else if (String.Compare(sFIELD_TYPE, "DatePicker", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { DatePicker ctlDate = tbl.Page.LoadControl("~/CRM/UserControls/DatePicker.ascx") as DatePicker; tdField.Controls.Add(ctlDate); ctlDate.ID = sDATA_FIELD; ctlDate.TabIndex = nFORMAT_TAB_INDEX; if (rdr != null) ctlDate.Value = CRM.Common.TimeZone.GetTimeZone.FromServerTime(rdr[sDATA_FIELD]); if (bLayoutMode) { Literal litField = new Literal(); litField.Text = sDATA_FIELD; tdField.Controls.Add(litField); } } } else if (String.Compare(sFIELD_TYPE, "DateRange", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { Table tblDateRange = new Table(); tdField.Controls.Add(tblDateRange); TableRow trAfter = new TableRow(); TableRow trBefore = new TableRow(); tblDateRange.Rows.Add(trAfter); tblDateRange.Rows.Add(trBefore); TableCell tdAfterLabel = new TableCell(); TableCell tdAfterData = new TableCell(); TableCell tdBeforeLabel = new TableCell(); TableCell tdBeforeData = new TableCell(); trAfter.Cells.Add(tdAfterLabel); trAfter.Cells.Add(tdAfterData); trBefore.Cells.Add(tdBeforeLabel); trBefore.Cells.Add(tdBeforeData); DatePicker ctlDateStart = tbl.Page.LoadControl("~/CRM/UserControls/DatePicker.ascx") as DatePicker; DatePicker ctlDateEnd = tbl.Page.LoadControl("~/CRM/UserControls/DatePicker.ascx") as DatePicker; Literal litAfterLabel = new Literal(); Literal litBeforeLabel = new Literal(); litAfterLabel.Text = Translation.GetTranslation.Term("SavedSearch.LBL_SEARCH_AFTER"); litBeforeLabel.Text = Translation.GetTranslation.Term("SavedSearch.LBL_SEARCH_BEFORE"); tdAfterLabel.Controls.Add(litAfterLabel); tdAfterData.Controls.Add(ctlDateStart); tdBeforeLabel.Controls.Add(litBeforeLabel); tdBeforeData.Controls.Add(ctlDateEnd); ctlDateStart.ID = sDATA_FIELD + "_AFTER"; ctlDateEnd.ID = sDATA_FIELD + "_BEFORE"; ctlDateStart.TabIndex = nFORMAT_TAB_INDEX; ctlDateEnd.TabIndex = nFORMAT_TAB_INDEX; if (rdr != null) { ctlDateStart.Value = CRM.Common.TimeZone.GetTimeZone.FromServerTime(rdr[sDATA_FIELD]); ctlDateEnd.Value = CRM.Common.TimeZone.GetTimeZone.FromServerTime(rdr[sDATA_FIELD]); } if (bLayoutMode) { Literal litField = new Literal(); litField.Text = sDATA_FIELD; tdField.Controls.Add(litField); } } } else if (String.Compare(sFIELD_TYPE, "DateTimePicker", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { DateTimePicker ctlDate = tbl.Page.LoadControl("~/CRM/UserControls/DateTimePicker.ascx") as DateTimePicker; tdField.Controls.Add(ctlDate); ctlDate.ID = sDATA_FIELD; ctlDate.TabIndex = nFORMAT_TAB_INDEX; if (rdr != null) ctlDate.Value = CRM.Common.TimeZone.GetTimeZone.FromServerTime(rdr[sDATA_FIELD]); if (bLayoutMode) { Literal litField = new Literal(); litField.Text = sDATA_FIELD; tdField.Controls.Add(litField); } } } else if (String.Compare(sFIELD_TYPE, "DateTimeEdit", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { DateTimeEdit ctlDate = tbl.Page.LoadControl("~/CRM/UserControls/DateTimeEdit.ascx") as DateTimeEdit; tdField.Controls.Add(ctlDate); ctlDate.ID = sDATA_FIELD; ctlDate.TabIndex = nFORMAT_TAB_INDEX; if (rdr != null) ctlDate.Value = CRM.Common.TimeZone.GetTimeZone.FromServerTime(rdr[sDATA_FIELD]); if (!bLayoutMode && bUI_REQUIRED) { ctlDate.EnableNone = false; } if (bLayoutMode) { Literal litField = new Literal(); litField.Text = sDATA_FIELD; tdField.Controls.Add(litField); } } } else if (String.Compare(sFIELD_TYPE, "File", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { HtmlInputFile ctlField = new HtmlInputFile(); tdField.Controls.Add(ctlField); ctlField.ID = sDATA_FIELD; ctlField.MaxLength = nFORMAT_MAX_LENGTH; ctlField.Size = nFORMAT_SIZE; ctlField.Attributes.Add("TabIndex", nFORMAT_TAB_INDEX.ToString()); if (!bLayoutMode && bUI_REQUIRED) { RequiredFieldValidator reqNAME = new RequiredFieldValidator(); reqNAME.ID = sDATA_FIELD + "_REQUIRED"; reqNAME.ControlToValidate = ctlField.ID; reqNAME.ErrorMessage = Translation.GetTranslation.Term(".ERR_REQUIRED_FIELD"); reqNAME.CssClass = "required"; reqNAME.EnableViewState = false; reqNAME.EnableClientScript = false; reqNAME.Enabled = false; reqNAME.Style.Add("padding-left", "4px"); tdField.Controls.Add(reqNAME); } } } else if (String.Compare(sFIELD_TYPE, "Image", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { HtmlInputHidden ctlHidden = new HtmlInputHidden(); if (!bLayoutMode) { tdField.Controls.Add(ctlHidden); ctlHidden.ID = sDATA_FIELD; HtmlInputFile ctlField = new HtmlInputFile(); tdField.Controls.Add(ctlField); ctlField.ID = sDATA_FIELD + "_File"; Literal litBR = new Literal(); litBR.Text = "<br />"; tdField.Controls.Add(litBR); } Image imgField = new Image(); imgField.ID = "img" + sDATA_FIELD; try { if (bLayoutMode) { Literal litField = new Literal(); litField.Text = sDATA_FIELD; tdField.Controls.Add(litField); } else if (rdr != null) { if (!TypeConvert.IsEmptyString(rdr[sDATA_FIELD])) { ctlHidden.Value = TypeConvert.ToString(rdr[sDATA_FIELD]); imgField.ImageUrl = "~/CRM/Images/Image.aspx?ID=" + ctlHidden.Value; tdField.Controls.Add(imgField); Literal litClear = new Literal(); litClear.Text = "<br /><input type=\"button\" class=\"button\" onclick=\"form." + ctlHidden.ClientID + ".value='';form." + imgField.ClientID + ".src='';" + "\" value='" + " " + Translation.GetTranslation.Term(".LBL_CLEAR_BUTTON_LABEL") + " " + "' title='" + Translation.GetTranslation.Term(".LBL_CLEAR_BUTTON_TITLE") + "' />"; tdField.Controls.Add(litClear); } } } catch (Exception ex) { Literal litField = new Literal(); litField.Text = ex.Message; tdField.Controls.Add(litField); } } } else if (String.Compare(sFIELD_TYPE, "AddressButtons", true) == 0) { tr.Cells.Remove(tdField); tdLabel.Width = "10%"; tdLabel.RowSpan = nROWSPAN; tdLabel.VAlign = "middle"; tdLabel.Align = "center"; tdLabel.Attributes.Remove("class"); tdLabel.Attributes.Add("class", "tabFormAddDel"); HtmlInputButton btnCopyRight = new HtmlInputButton("button"); Literal litSpacer = new Literal(); HtmlInputButton btnCopyLeft = new HtmlInputButton("button"); tdLabel.Controls.Add(btnCopyRight); tdLabel.Controls.Add(litSpacer); tdLabel.Controls.Add(btnCopyLeft); btnCopyRight.Attributes.Add("title", Translation.GetTranslation.Term("Accounts.NTC_COPY_BILLING_ADDRESS")); btnCopyRight.Attributes.Add("onclick", "return copyAddressRight()"); btnCopyRight.Value = ">>"; litSpacer.Text = "<br><br>"; btnCopyLeft.Attributes.Add("title", Translation.GetTranslation.Term("Accounts.NTC_COPY_SHIPPING_ADDRESS")); btnCopyLeft.Attributes.Add("onclick", "return copyAddressLeft()"); btnCopyLeft.Value = "<<"; nColIndex = 0; } else if (String.Compare(sFIELD_TYPE, "Hidden", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { HtmlInputHidden hidID = new HtmlInputHidden(); tdField.Controls.Add(hidID); hidID.ID = sDATA_FIELD; if (bLayoutMode) { TextBox txtNAME = new TextBox(); tdField.Controls.Add(txtNAME); txtNAME.ReadOnly = true; txtNAME.EnableViewState = false; txtNAME.Text = sDATA_FIELD; txtNAME.Enabled = false; } else { nCOLSPAN = -1; tr.Cells.Remove(tdLabel); tdField.Attributes.Add("style", "display:none"); if (!TypeConvert.IsEmptyString(sDATA_FIELD) && rdr != null) hidID.Value = TypeConvert.ToString(rdr[sDATA_FIELD]); else if (sDATA_FIELD == "TEAM_ID" && rdr == null && !tbl.Page.IsPostBack) hidID.Value = CRMSecurity.TEAM_ID.ToString(); else if (sDATA_FIELD == "ASSIGNED_USER_ID" && rdr == null && !tbl.Page.IsPostBack) hidID.Value = CRMSecurity.USER_ID.ToString(); } } } else { Literal litField = new Literal(); tdField.Controls.Add(litField); litField.Text = "Unknown field type " + sFIELD_TYPE; } if (nCOLSPAN > 0) nColIndex += nCOLSPAN; else if (nCOLSPAN == 0) nColIndex++; if (nColIndex >= nDATA_COLUMNS) nColIndex = 0; } }
/// <summary> /// Generate CSV formatted output for the given reader. /// </summary> public string Generate(System.Data.Common.DbDataReader reader) { var builder = new StringBuilder(); var schema = reader.GetSchemaTable(); var colcount = reader.FieldCount; var nullable = new bool[colcount]; var datatype = new Type[colcount]; var typename = new string[colcount]; for(int c=0; c<colcount; c++) { nullable[c] = true; datatype[c] = reader.GetFieldType(c); typename[c] = reader.GetDataTypeName(c); if (c == 0) { if (this.Settings.AddLineNumbers) { if (this.Settings.QuotedStrings) builder.Append(this.Settings.StringQuote); builder.Append("Line"); if (this.Settings.QuotedStrings) builder.Append(this.Settings.StringQuote); builder.Append(this.Settings.FieldSeparator); } } else { builder.Append(this.Settings.FieldSeparator); } if (this.Settings.QuotedStrings) builder.Append(this.Settings.StringQuote); builder.Append(reader.GetName(c)); if (this.Settings.QuotedStrings) builder.Append(this.Settings.StringQuote); } builder.Append(this.Settings.LineSeparator); var lineNumber = 0; while (reader.Read()) { lineNumber++; for (int c = 0; c < colcount; c++) { if (c == 0) { if (this.Settings.AddLineNumbers) { builder.Append(lineNumber); builder.Append(this.Settings.FieldSeparator); } } else { builder.Append(this.Settings.FieldSeparator); } if (nullable[c] && reader.IsDBNull(c)) { } else { if (datatype[c] == typeof(String)) { if (this.Settings.QuotedStrings) builder.Append(this.Settings.StringQuote); builder.Append(ToCsvableString(reader.GetString(c))); if (this.Settings.QuotedStrings) builder.Append(this.Settings.StringQuote); } else if (datatype[c] == typeof(DateTime)) { builder.Append(reader.GetDateTime(c).ToString(this.Settings.DateTimeFormat, this.Settings.FormatProvider)); } else if (datatype[c] == typeof(Boolean)) { builder.Append(reader.GetBoolean(c) ? this.Settings.BooleanTrue : this.Settings.BooleanFalse); } else { builder.AppendFormat(this.Settings.FormatProvider, "{0}", reader.GetValue(c)); } } } builder.Append(this.Settings.LineSeparator); } return builder.ToString(); }
public static void SetEditViewFields(System.Web.UI.UserControl Parent, string sEDIT_NAME, System.Data.SqlClient.SqlDataReader rdr) { bool bEnableTeamManagement = Common.Config.enable_team_management(); DataTable dtFields = CRMCache.EditViewFields(sEDIT_NAME); DataView dvFields = dtFields.DefaultView; foreach (DataRowView row in dvFields) { string sFIELD_TYPE = TypeConvert.ToString(row["FIELD_TYPE"]); string sDATA_LABEL = TypeConvert.ToString(row["DATA_LABEL"]); string sDATA_FIELD = TypeConvert.ToString(row["DATA_FIELD"]); string sDISPLAY_FIELD = TypeConvert.ToString(row["DISPLAY_FIELD"]); int nFORMAT_ROWS = TypeConvert.ToInteger(row["FORMAT_ROWS"]); if (sDATA_FIELD == "TEAM_ID") { if (!bEnableTeamManagement) { sFIELD_TYPE = "Blank"; } } if (String.Compare(sFIELD_TYPE, "Blank", true) == 0) { } else if (String.Compare(sFIELD_TYPE, "Label", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { Literal litField = Parent.FindControl(sDATA_FIELD) as Literal; if (litField != null) { if (sDATA_FIELD.IndexOf(".") >= 0) litField.Text = Translation.GetTranslation.Term(sDATA_FIELD); else litField.Text = TypeConvert.ToString(rdr[sDATA_FIELD]); } } } else if (String.Compare(sFIELD_TYPE, "ListBox", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { if (nFORMAT_ROWS > 0) { ListBox lstField = Parent.FindControl(sDATA_FIELD) as ListBox; if (lstField != null) { lstField.SelectedValue = TypeConvert.ToString(rdr[sDATA_FIELD]); } } else { DropDownList lstField = Parent.FindControl(sDATA_FIELD) as DropDownList; if (lstField != null) { try { lstField.SelectedValue = TypeConvert.ToString(rdr[sDATA_FIELD]); } catch { lstField.SelectedIndex = 0; } } } } } else if (String.Compare(sFIELD_TYPE, "CheckBox", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { CheckBox chkField = Parent.FindControl(sDATA_FIELD) as CheckBox; if (chkField != null) chkField.Checked = TypeConvert.ToBoolean(rdr[sDATA_FIELD]); } } else if (String.Compare(sFIELD_TYPE, "ChangeButton", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { if (sDATA_LABEL == "PARENT_TYPE") { DropDownList lstField = Parent.FindControl(sDATA_LABEL) as DropDownList; if (lstField != null) { lstField.ClearSelection(); lstField.SelectedValue = TypeConvert.ToString(rdr[sDATA_LABEL]); } } TextBox txtNAME = Parent.FindControl(sDISPLAY_FIELD) as TextBox; if (txtNAME != null) { if (!TypeConvert.IsEmptyString(sDISPLAY_FIELD)) txtNAME.Text = TypeConvert.ToString(rdr[sDISPLAY_FIELD]); HtmlInputHidden hidID = Parent.FindControl(sDATA_FIELD) as HtmlInputHidden; if (hidID != null) { hidID.Value = TypeConvert.ToString(rdr[sDATA_FIELD]); } } } } else if (String.Compare(sFIELD_TYPE, "TextBox", true) == 0 || String.Compare(sFIELD_TYPE, "Password", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { TextBox txtField = Parent.FindControl(sDATA_FIELD) as TextBox; if (txtField != null) { int nOrdinal = rdr.GetOrdinal(sDATA_FIELD); string sTypeName = rdr.GetDataTypeName(nOrdinal); if (sTypeName == "money" || rdr[sDATA_FIELD].GetType() == typeof(System.Decimal)) txtField.Text = TypeConvert.ToDecimal(rdr[sDATA_FIELD]).ToString("#,##0.00"); else txtField.Text = TypeConvert.ToString(rdr[sDATA_FIELD]); } } } else if (String.Compare(sFIELD_TYPE, "DatePicker", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { DatePicker ctlDate = Parent.FindControl(sDATA_FIELD) as DatePicker; if (ctlDate != null) ctlDate.Value = CRM.Common.TimeZone.GetTimeZone.FromServerTime(rdr[sDATA_FIELD]); } } else if (String.Compare(sFIELD_TYPE, "DateTimePicker", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { DateTimePicker ctlDate = Parent.FindControl(sDATA_FIELD) as DateTimePicker; if (ctlDate != null) ctlDate.Value = CRM.Common.TimeZone.GetTimeZone.FromServerTime(rdr[sDATA_FIELD]); } } else if (String.Compare(sFIELD_TYPE, "DateTimeEdit", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { DateTimeEdit ctlDate = Parent.FindControl(sDATA_FIELD) as DateTimeEdit; if (ctlDate != null) ctlDate.Value = CRM.Common.TimeZone.GetTimeZone.FromServerTime(rdr[sDATA_FIELD]); } } else if (String.Compare(sFIELD_TYPE, "File", true) == 0) { } else if (String.Compare(sFIELD_TYPE, "Image", true) == 0) { if (!TypeConvert.IsEmptyString(sDATA_FIELD)) { HtmlInputHidden ctlHidden = Parent.FindControl(sDATA_FIELD) as HtmlInputHidden; Image imgField = Parent.FindControl("img" + sDATA_FIELD) as Image; if (ctlHidden != null && imgField != null) { if (!TypeConvert.IsEmptyString(rdr[sDATA_FIELD])) { ctlHidden.Value = TypeConvert.ToString(rdr[sDATA_FIELD]); imgField.ImageUrl = "~/CRM/Images/Image.aspx?ID=" + ctlHidden.Value; } } } } } }