/// <summary> /// Handles the Update event of the grdFields control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="T:System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param> public void grdFields_Update(object sender, DataGridCommandEventArgs e) { CheckBox chkVisible = (CheckBox)e.Item.Cells[1].Controls[1]; TextBox txtFieldTitle = (TextBox)e.Item.Cells[2].Controls[1]; DropDownList cboFieldType = (DropDownList)e.Item.Cells[3].Controls[1]; if (txtFieldTitle.Text.Length != 0) { UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); if (int.Parse(grdFields.DataKeys[e.Item.ItemIndex].ToString()) == -1) { objUserDefinedTable.AddUserDefinedField(ModuleID, txtFieldTitle.Text, chkVisible.Checked, cboFieldType.SelectedItem.Value); } else { objUserDefinedTable.UpdateUserDefinedField(int.Parse(grdFields.DataKeys[e.Item.ItemIndex].ToString()), txtFieldTitle.Text, chkVisible.Checked, cboFieldType.SelectedItem.Value); } grdFields.EditItemIndex = -1; BindData(); } else { grdFields.EditItemIndex = -1; BindData(); } }
/// <summary> /// Binds the data. /// </summary> /// <param name="blnInsertField">if set to <c>true</c> [BLN insert field].</param> protected void BindData(bool blnInsertField) { UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); SqlDataReader dr = objUserDefinedTable.GetUserDefinedFields(ModuleID); DataSet ds; ds = ConvertDataReaderToDataSet(dr); // inserting a new field if (blnInsertField) { DataRow row; row = ds.Tables[0].NewRow(); row["UserDefinedFieldID"] = "-1"; row["FieldTitle"] = string.Empty; row["Visible"] = true; row["FieldType"] = "String"; ds.Tables[0].Rows.InsertAt(row, 0); grdFields.EditItemIndex = 0; } grdFields.DataSource = ds; grdFields.DataBind(); }
/// <summary> /// Handles the Delete event of the grdFields control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="T:System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param> public void grdFields_Delete(object sender, DataGridCommandEventArgs e) { UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); objUserDefinedTable.DeleteUserDefinedField(int.Parse(grdFields.DataKeys[e.Item.ItemIndex].ToString())); grdFields.EditItemIndex = -1; BindData(); }
/// <summary> /// XMLs the data view. /// </summary> /// <returns></returns> private DataView XmlDataView() { UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); DataSet ds; ds = objUserDefinedTable.GetUserDefinedRows(ModuleIDsrc()); // create a dataview to process the sort and filter options return(new DataView(ds.Tables[0])); }
/// <summary> /// The DeleteBtn_Click event handler on this Page is used to delete /// a row. It uses the Rainbow.UserDefinedTableDB() data component to /// encapsulate all data functionality. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param> override protected void OnDelete(EventArgs e) { // Calling base we check if the user has rights on deleting base.OnUpdate(e); if (UserDefinedRowID != -1) { UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); objUserDefinedTable.DeleteUserDefinedRow(UserDefinedRowID); } // Redirect back to the portal home page this.RedirectBackToReferringPage(); }
/// <summary> /// The Page_Load event on this Page is used to ... /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param> private void Page_Load(object sender, EventArgs e) { if (!(Request.Params["UserDefinedRowID"] == null)) { UserDefinedRowID = Int32.Parse(Request.Params["UserDefinedRowID"].ToString()); } BuildTable(); if (Page.IsPostBack == false) { if (UserDefinedRowID != -1) { Control tb; UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); SqlDataReader dr = objUserDefinedTable.GetSingleUserDefinedRow(UserDefinedRowID, ModuleID); try { while (dr.Read()) { tb = tblFields.FindControl(dr["FieldTitle"].ToString()); if (tb != null) { if (tb.GetType() == typeof(TextBox)) { ((TextBox)tb).Text = dr["FieldValue"].ToString(); } if (tb.GetType() == typeof(DropDownList)) { if (((DropDownList)tb).Items.Count > 0) { try{ ((DropDownList)tb).Items.FindByValue(dr["FieldValue"].ToString()).Selected = true; } catch { ((DropDownList)tb).Items[0].Selected = true; } } } } } } finally { dr.Close(); } } else { this.deleteButton.Visible = false; } } }
/// <summary> /// Handles the Move event of the grdFields control. /// </summary> /// <param name="source">The source of the event.</param> /// <param name="e">The <see cref="T:System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param> public void grdFields_Move(object source, DataGridCommandEventArgs e) { UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); switch (e.CommandArgument.ToString()) { case "Up": objUserDefinedTable.UpdateUserDefinedFieldOrder(int.Parse(grdFields.DataKeys[e.Item.ItemIndex].ToString()), -1); BindData(); break; case "Down": objUserDefinedTable.UpdateUserDefinedFieldOrder(int.Parse(grdFields.DataKeys[e.Item.ItemIndex].ToString()), 1); BindData(); break; } }
/// <summary> /// Binds the grid. /// </summary> protected void BindGrid() { UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); string strSortField = string.Empty; string strSortOrder = string.Empty; SqlDataReader dr; if (ViewState["SortField"].ToString().Length != 0 && ViewState["SortOrder"].ToString().Length != 0) { strSortField = ViewState["SortField"].ToString(); strSortOrder = ViewState["SortOrder"].ToString(); } else { if (Settings["SortField"].ToString().Length != 0) { strSortField = Settings["SortField"].ToString(); } if (Settings["SortOrder"].ToString().Length != 0) { strSortOrder = Settings["SortOrder"].ToString(); } else { strSortOrder = "ASC"; } } grdData.Columns.Clear(); dr = objUserDefinedTable.GetUserDefinedFields(ModuleID); try { while (dr.Read()) { DataGridColumn colField = null; if (dr["FieldType"].ToString() == "Image") { colField = new BoundColumn(); ((BoundColumn)colField).DataField = dr["FieldTitle"].ToString(); ((BoundColumn)colField).DataFormatString = "<img src=\"" + ((SettingItem)Settings["ImagePath"]).FullPath + "/{0}" + "\" alt=\"{0}\" border =0>"; } else if (dr["FieldType"].ToString() == "File") { colField = new HyperLinkColumn(); ((HyperLinkColumn)colField).DataTextField = dr["FieldTitle"].ToString(); ((HyperLinkColumn)colField).DataTextFormatString = "{0}"; ((HyperLinkColumn)colField).DataNavigateUrlFormatString = ((SettingItem)Settings["DocumentPath"]).FullPath + "/{0}"; ((HyperLinkColumn)colField).DataNavigateUrlField = dr["FieldTitle"].ToString(); } else { colField = new BoundColumn(); ((BoundColumn)colField).DataField = dr["FieldTitle"].ToString(); switch (dr["FieldType"].ToString()) { case "DateTime": //Changed to Italian format as it is sayed to be the default (see intro of history.txt) //Better would be to make this follow the current culture - Rob Siera, 15 jan 2005 ((BoundColumn)colField).DataFormatString = "{0:dd MMM yyyy}"; break; case "Int32": ((BoundColumn)colField).DataFormatString = "{0:#,###,##0}"; colField.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; colField.ItemStyle.HorizontalAlign = HorizontalAlign.Right; break; case "Decimal": ((BoundColumn)colField).DataFormatString = "{0:#,###,##0.00}"; colField.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; colField.ItemStyle.HorizontalAlign = HorizontalAlign.Right; break; } } colField.HeaderText = dr["FieldTitle"].ToString(); if (dr["FieldTitle"].ToString() == strSortField) { // 2004/07/04 by Ozan Sirin, FIX: It does not show sort images when running root site instead of rainbow virtual folder. if (strSortOrder == "ASC") { colField.HeaderText += "<img src='" + Path.WebPathCombine(Path.ApplicationRoot, "DesktopModules/UserDefinedTable/sortascending.gif") + "' border='0' alt='" + General.GetString("USERTABLE_SORTEDBY", "Sorted By", null) + " " + strSortField + " " + General.GetString("USERTABLE_INASCORDER", "In Ascending Order", null) + "'>"; } else { colField.HeaderText += "<img src='" + Path.WebPathCombine(Path.ApplicationRoot, "DesktopModules/UserDefinedTable/sortdescending.gif") + "' border='0' alt='" + General.GetString("USERTABLE_SORTEDBY", "Sorted By", null) + " " + strSortField + " " + General.GetString("USERTABLE_INDSCORDER", "In Descending Order", null) + "'>"; } } colField.Visible = bool.Parse(dr["Visible"].ToString()); colField.SortExpression = dr["FieldTitle"].ToString() + "|ASC"; grdData.Columns.Add(colField); } } finally { dr.Close(); } if (IsEditable) { HyperLinkColumn hc = new HyperLinkColumn(); hc.Text = "Edit"; hc.DataNavigateUrlField = "UserDefinedRowID"; hc.DataNavigateUrlFormatString = HttpUrlBuilder.BuildUrl("~/DesktopModules/CommunityModules/UserDefinedTable/UserDefinedTableEdit.aspx", PageID, "&mID=" + ModuleID + "&UserDefinedRowID={0}"); grdData.Columns.Add(hc); } DataSet ds; ds = objUserDefinedTable.GetUserDefinedRows(ModuleID); // create a dataview to process the sort and filter options DataView dv; dv = new DataView(ds.Tables[0]); // sort data view if (strSortField.Length != 0 && strSortOrder.Length != 0) { dv.Sort = strSortField + " " + strSortOrder; } grdData.DataSource = dv; grdData.DataBind(); }
/// <summary> /// The UpdateBtn_Click event handler on this Page is used to either /// create or update a row. It uses the Rainbow.UserDefinedTableDB() /// data component to encapsulate all data functionality. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param> protected override void OnUpdate(EventArgs e) { // Calling base we check if the user has rights on updating base.OnUpdate(e); UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); bool ValidInput = true; string strMessage = string.Empty; SqlDataReader dr = objUserDefinedTable.GetUserDefinedFields(ModuleID); try { while (dr.Read()) { //if ( Request.Form[prefix + dr["FieldTitle"]] != null && Request.Form[prefix + dr["FieldTitle"]].ToString().Length != 0 ) if (Request.Form[prefix + dr["FieldTitle"]] != null) { switch (dr["FieldType"].ToString()) { case "Int32": try { int obj = int.Parse(Request.Form[prefix + dr["FieldTitle"].ToString()]); } catch { strMessage += "<br>" + dr["FieldTitle"].ToString() + " " + General.GetString("UDT_VALIDINTEGER", "must contain a valid integer value"); ValidInput = false; } break; case "Decimal": try { Decimal obj = Decimal.Parse(Request.Form[prefix + dr["FieldTitle"].ToString()]); } catch { strMessage += "<br>" + dr["FieldTitle"].ToString() + " " + General.GetString("UDT_VALIDDECIMAL", "must contain a valid decimal value"); ValidInput = false; } break; case "DateTime": try { DateTime obj = DateTime.Parse(Request.Form[prefix + dr["FieldTitle"].ToString()]); } catch { strMessage += "<br>" + dr["FieldTitle"].ToString() + " " + General.GetString("UDT_VALIDDATE", "must contain a valid date value"); ValidInput = false; } break; case "Boolean": try { bool obj = bool.Parse(Request.Form[prefix + dr["FieldTitle"].ToString()]); } catch { strMessage += "<br>" + dr["FieldTitle"].ToString() + " " + General.GetString("UDT_VALIDBOOLEAN", "must contain a valid true/false value"); ValidInput = false; } break; } } } } finally { dr.Close(); } if (ValidInput) { if (UserDefinedRowID == -1) { UserDefinedRowID = objUserDefinedTable.AddUserDefinedRow(ModuleID, out UserDefinedRowID); } dr = objUserDefinedTable.GetUserDefinedFields(ModuleID); try { while (dr.Read()) { string fieldValue = Request.Form[prefix + dr["FieldTitle"].ToString()]; if (dr["FieldType"].ToString() == "File" || dr["FieldType"].ToString() == "Image") { HtmlInputFile fileControl = (HtmlInputFile)Page.FindControl(prefix + dr["FieldTitle"].ToString() + "_Upload"); if (fileControl.PostedFile.ContentLength > 0) { fieldValue = fileControl.PostedFile.FileName.Substring(fileControl.PostedFile.FileName.LastIndexOf("\\") + 1); string pathToSave = string.Empty; if (dr["FieldType"].ToString() == "Image") { pathToSave = Server.MapPath(((SettingItem)moduleSettings["ImagePath"]).FullPath) + "\\"; } else { pathToSave = Server.MapPath(((SettingItem)moduleSettings["DocumentPath"]).FullPath) + "\\"; } try { fileControl.PostedFile.SaveAs(pathToSave + fieldValue); } catch (DirectoryNotFoundException ex) { // If the directory is not found, create and then save Directory.CreateDirectory(pathToSave); //System.IO.File.Delete(pathToSave + fieldValue); fileControl.PostedFile.SaveAs(pathToSave + fieldValue); //This line is here to supress the warning ex.ToString(); } } } objUserDefinedTable.UpdateUserDefinedData(UserDefinedRowID, int.Parse(dr["UserDefinedFieldID"].ToString()), fieldValue); } } finally { dr.Close(); } objUserDefinedTable.UpdateUserDefinedRow(UserDefinedRowID); // Redirect back to the portal home page this.RedirectBackToReferringPage(); } else { lblMessage.Text = strMessage; } }
/// <summary> /// Builds the table. /// </summary> private void BuildTable() { UserDefinedTableDB objUserDefinedTable = new UserDefinedTableDB(); TableRow objRow; TableCell objCell; SqlDataReader dr = objUserDefinedTable.GetUserDefinedFields(ModuleID); try { while (dr.Read()) { objRow = new TableRow(); objCell = new TableCell(); objCell.Controls.Add(new LiteralControl(dr["FieldTitle"].ToString() + ":")); objCell.CssClass = "SubHead"; objRow.Cells.Add(objCell); objCell = new TableCell(); switch (dr["FieldType"].ToString()) { case "String": { TextBox objTextBox = new TextBox(); objTextBox.ID = dr["FieldTitle"].ToString(); objTextBox.Columns = 50; objTextBox.Rows = 5; objTextBox.TextMode = TextBoxMode.MultiLine; objTextBox.CssClass = "NormalTextBox"; objCell.Controls.Add(objTextBox); } break; case "File": case "Image": { DropDownList imageList = new DropDownList(); imageList.ID = dr["FieldTitle"].ToString(); //add a default empty entry imageList.Items.Add(new ListItem("[---------------------------]", string.Empty)); HtmlInputFile fileInputBox = new HtmlInputFile(); fileInputBox.ID = dr["FieldTitle"].ToString() + "_Upload"; fileInputBox.Size = 30; string pathToFiles = string.Empty; string [] fileArray = new string[0]; if (dr["FieldType"].ToString() == "Image") { // get the path to the files pathToFiles = Server.MapPath(((SettingItem)moduleSettings["ImagePath"]).FullPath) + "\\"; // retrieving a list of files for the dropdownbox fileArray = IOHelper.GetFiles(pathToFiles, "*.jpg;*.png;*.gif"); //set the accept variable on the input element fileInputBox.Attributes.Add("accept", "image/*"); } else { // get the path to the files pathToFiles = Server.MapPath(((SettingItem)moduleSettings["DocumentPath"]).FullPath) + "\\"; // retrieving a list of files for the dropdownbox fileArray = IOHelper.GetFiles(pathToFiles, "*.*"); } //now fill the dropdown box foreach (string entry in fileArray) { imageList.Items.Add(entry.Substring(entry.LastIndexOf("\\") + 1)); } imageList.DataBind(); imageList.Attributes.Add("onChange", dr["FieldTitle"].ToString() + "_Upload.value='';"); objCell.Controls.Add(imageList); objCell.Controls.Add(new LiteralControl(" ")); fileInputBox.Attributes.Add("onChange", dr["FieldTitle"].ToString() + ".selectedIndex=0;"); objCell.Controls.Add(fileInputBox); } break; default: { TextBox objTextBox = new TextBox(); objTextBox.ID = dr["FieldTitle"].ToString(); objTextBox.Columns = 50; objTextBox.CssClass = "NormalTextBox"; objCell.Controls.Add(objTextBox); } break; } objRow.Cells.Add(objCell); tblFields.Rows.Add(objRow); } } finally { dr.Close(); } }