internal override void RenderEditView(WebGridHtmlWriter writer, RowCell cell) { StringBuilder sb = new StringBuilder(); GetColumnPostBackData(cell); EnsureItems(cell); if (Items.Count > 0) { string strHeight = "5"; if (HeightEditableColumn != Unit.Empty) { strHeight = HeightEditableColumn.Value.ToString(); } if (ManyToManyType == ManyToManyType.Multiselect) { sb.AppendFormat( "<select size={0} multiple=\"multiple\" class=\"wgeditfield\" id=\"{1}\" name=\"{1}\">", strHeight, cell.CellClientId); } else { sb.Append("<table class=\"wgmanytomany\"><tr><td>"); m_Rowcounter = RecordsPerRow; } RenderDetailTree(sb, null, 0, cell); sb.Append(ManyToManyType == ManyToManyType.Multiselect ? "</select>" : "</tr></table>"); } string displayText = sb.ToString(); if (string.IsNullOrEmpty(ToolTipInput) == false) { displayText = Tooltip.Add(displayText, ToolTipInput); } EditHtml(displayText, writer, cell); }
internal override void RenderEditView(HtmlTextWriter writer, RowCell cell) { if (Table.m_GotData == false) // Data need to be recovered if CacheDatasourceStructure is active. { Table.GetData(true); } if (Identity || AllowEdit == false || (Grid.DisplayView == DisplayView.Grid && AllowEditInGrid == false)) { RenderLabelView(writer, cell); return; } if (string.IsNullOrEmpty(ValueColumn)) { throw new GridException( String.Format(Table.m_Grid.GetSystemMessage("SystemMessage_ForeignkeyNoValueColumn"), Title)); } StringBuilder s = new StringBuilder(string.Empty); switch (ForeignkeyType) { case ForeignkeyType.Select: case ForeignkeyType.SelectMenu: { StringBuilder eventScript = new StringBuilder(string.Empty); StringBuilder javascript = new StringBuilder(string.Empty); if (AutoPostback || string.IsNullOrEmpty(ConfirmMessage) == false) { eventScript = new StringBuilder(" onchange=\""); if (string.IsNullOrEmpty(ConfirmMessage) == false) { eventScript.AppendFormat(" if(wgconfirm('{0}',this,'{1}')) ", ConfirmMessage.Replace("'", "\\'"), Grid.DialogTitle.Replace("'", "\\'")); } string link = Grid.EnableCallBack && !ForcePostBack ? Asynchronous.GetCallbackEventReference(Grid, string.Format( "ElementPostBack!{0}!{1}", ColumnId, cell.Row.PrimaryKeyValues), false, string.Empty, string.Empty) : Grid.Page.ClientScript.GetPostBackEventReference(Grid, string.Format( "ElementPostBack!{0}!{1}", ColumnId, cell.Row. PrimaryKeyValues)); eventScript.AppendFormat("{0}\"", link); } StringBuilder onblur = new StringBuilder(" onblur=\""); if (Grid.ColumnChangedColour != Color.Empty) { onblur.AppendFormat("isChanged(this,'{0}');", Grid.ColorToHtml(Grid.ColumnChangedColour)); } onblur.Append("\""); javascript.Append(onblur); s.AppendFormat("<select {0} class=\"wgeditfield wgselectbox {4}\" id=\"{1}\" name=\"{1}\" {2} {3}>", javascript, cell.CellClientId, eventScript, Attributes, CssClass); if (m_Foreignkeytype == ForeignkeyType.SelectMenu && (Grid.Scripts == null || !Grid.Scripts.DisableSelectMenu)) { if (SelectMenuWidth > 0) { Grid.AddClientScript(writer, string.Format( "$(document).ready(function() {{$('#{0}').selectmenu({{maxHeight: {2},style:'dropdown',width: {1}}});}});", cell.CellClientId, SelectMenuWidth, SelectMenuMaxHeight)); } else { Grid.AddClientScript(writer, string.Format( "$(document).ready(function() {{$('#{0}').selectmenu({{maxHeight: {1},style:'dropdown'}});}});", cell.CellClientId, SelectMenuMaxHeight)); } } if (Table.Rows.Count == 0 && NullText == null) { NullText = "No data available."; } if (NullText != null) { s.AppendFormat("<option value=\"{1}\">{0}</option>", NullText, string.Empty); } //CreateRows(Grid,tree,null,0); s.Append(CreateSelectRows(TreeParentId != null, null, 0, cell)); s.Append("</select>"); } break; case ForeignkeyType.Radiobuttons: m_IsFormElement = false; m_Rowcounter = RecordsPerRow; s.AppendFormat("<table class=\"wgradiobuttons {1}\"><tr><td>{0}</td></tr></table>", CreateRadioButtons((TreeParentId != null), null, 0, cell), CssClass); break; } if (string.IsNullOrEmpty(ToolTipInput) == false) { s = new StringBuilder(Tooltip.Add(s.ToString(), ToolTipInput)); } EditHtml(s.ToString(), writer, cell); }
internal override void RenderEditView(WebGridHtmlWriter writer, RowCell cell) { if (Identity || AllowEdit == false || (Grid.DisplayView == DisplayView.Grid && AllowEditInGrid == false)) { RenderLabelView(writer, cell); return; } string uniqueID = cell.CellClientId; GetColumnPostBackData(cell); if (IsHtml) { EditHtml( !Grid.IsDesignTime ? DrawHtml(uniqueID, writer, Grid, cell) : HttpUtility.HtmlEncode("<HTML EDITOR DESIGN TIME>"), writer, cell); return; } string s; string theValueToShow = DisplayText(cell); /*if(TheValueToShow == null) * TheValueToShow = Value;*/ if (IsUrl && string.IsNullOrEmpty(theValueToShow)) { theValueToShow = HTTPCONST; } StringBuilder cssstyle = new StringBuilder("style=\""); theValueToShow = HttpUtility.HtmlEncode(theValueToShow); string size = string.Empty; string type = "text"; StringBuilder javascript = new StringBuilder(string.Empty); if (WidthEditableColumn != Unit.Empty) { cssstyle.AppendFormat("width:{0}; ", WidthEditableColumn); } if (HeightEditableColumn != Unit.Empty) { cssstyle.AppendFormat("height:{0}; ", HeightEditableColumn); } if (MaxSize > 0) { size = string.Format("maxlength=\"{0}\" ", MaxSize); } if (IsPassword) { type = "password"; } StringBuilder onblur = new StringBuilder(" onblur=\""); if (Grid.InputHighLight != Color.Empty) { javascript.AppendFormat( " onfocus=\"this.accessKey = style.backgroundColor;style.backgroundColor='{0}';\"", Grid.ColorToHtml(Grid.InputHighLight)); onblur.Append("style.backgroundColor=this.accessKey;"); } if (Grid.ColumnChangedColour != Color.Empty) { onblur.AppendFormat("isChanged(this,'{0}');", Grid.ColorToHtml(Grid.ColumnChangedColour)); } if (AutoPostback) { onblur.Append("if(hasChanged(this))"); onblur.Append(Grid.EnableCallBack && !ForcePostBack ? Asynchronous.GetCallbackEventReference(Grid, string.Format("ElementPostBack!{0}!{1}", ColumnId, cell.Row.PrimaryKeyValues), false, string.Empty, string.Empty) : Grid.Page.ClientScript.GetPostBackEventReference(Grid, string.Format( "ElementPostBack!{0}!{1}", ColumnId, cell.Row.PrimaryKeyValues))); } onblur.Append("\""); javascript.Append(onblur); string mask = null; if (!DisableMaskedInput && GenerateColumnMask != null) { string maskId = string.Format("{0}_{1}", Grid.ID, ColumnId); if (!Grid.MaskedColumns.ContainsKey(maskId)) { Grid.MaskedColumns.Add(maskId, GenerateColumnMask); } mask = string.Format(" alt=\"{0}\"", maskId); } cssstyle.Append("\""); if (HeightEditableColumn == Unit.Empty) { s = string.Format( "<input {0} {1} {6}{7} type=\"{2}\" class=\"wgeditfield\" {3} value=\"{4}\" id=\"{5}\" name=\"{5}\"/>", javascript, cssstyle, type, size, theValueToShow, uniqueID, Attributes, mask); } else { s = string.Format( "<textarea rows=\"1\" cols=\"1\" {0} {1} class=\"wgeditfield\" id=\"{2}\" name=\"{3}\" {4}>", javascript, cssstyle, uniqueID, uniqueID, Attributes); if (theValueToShow != null) { s += theValueToShow; } s += "</textarea>"; } if (string.IsNullOrEmpty(ToolTipInput) == false) { s = Tooltip.Add(s, ToolTipInput); } EditHtml(s, writer, cell); }
// 2005.01.09 - jorn - String.Compare, string.Length // 2005.01.05 - Jorn - Added check to see if there actually is a checkbox on "previous page". // Need to add a hidden field since checkbox "returns null" both for unchecked and non-existing internal void RenderDetail(bool enabled, WebGridHtmlWriter writer, RowCell cell) { if (AllowEdit == false || (Grid.DisplayView == DisplayView.Grid && AllowEditInGrid == false)) { enabled = false; } string uniqueId = cell.CellClientId; string strValue = DisplayText(cell); const string checkedValue = TrueValue; const string uncheckedValue = FalseValue; StringBuilder sb; if (String.Compare(strValue, checkedValue, true) == 0 && CheckedAlias != null && enabled == false) { sb = new StringBuilder(CheckedAlias); } else if (String.Compare(strValue, uncheckedValue, true) == 0 && UncheckedAlias != null && enabled == false) { sb = new StringBuilder(UncheckedAlias); } else { string bitchecked = string.Empty; string bitEnabled = string.Empty; if (String.Compare(strValue, checkedValue, true) == 0) { bitchecked = " checked=\"checked\""; } if (enabled == false) { bitEnabled = " disabled=\"disabled\""; } StringBuilder javascript = new StringBuilder(string.Empty); StringBuilder onblur = new StringBuilder(" onblur=\""); if (Grid.InputHighLight != Color.Empty) { javascript.AppendFormat( " onfocus=\"this.accessKey = this.style.backgroundColor;this.style.backgroundColor='{0}';\"", Grid.ColorToHtml(Grid.InputHighLight)); onblur.Append("this.style.backgroundColor=this.accessKey;"); } if (Grid.ColumnChangedColour != Color.Empty) { onblur.AppendFormat("isChanged(this,'{0}');", Grid.ColorToHtml(Grid.ColumnChangedColour)); } onblur.Append("\""); if (AutoPostback || string.IsNullOrEmpty(ConfirmMessage) == false) { StringBuilder eventScript = new StringBuilder(" onclick=\""); if (string.IsNullOrEmpty(ConfirmMessage) == false) { eventScript.AppendFormat(" if(wgconfirm('{0}',this,'{1}')) ", ConfirmMessage.Replace("'", "\\'"), Grid.DialogTitle.Replace("'", "\\'")); } string link = Grid.EnableCallBack && !ForcePostBack?Asynchronous.GetCallbackEventReference(Grid, string.Format("ElementPostBack!{0}!{1}", ColumnId, cell.Row.PrimaryKeyValues), false, string.Empty, string.Empty) : Grid.Page.ClientScript.GetPostBackEventReference(Grid, string.Format( "ElementPostBack!{0}!{1}", ColumnId, cell.Row.PrimaryKeyValues)); eventScript.AppendFormat("{0}\"", link); javascript.Append(eventScript); } javascript.Append(onblur); sb = new StringBuilder( string.Format( "<input {0} type=\"checkbox\" {1} {2} {4} id=\"cb_{3}\" name=\"{3}\" value=\"1\"/>", javascript, bitchecked, bitEnabled, uniqueId, Attributes)); if (string.IsNullOrEmpty(m_Displaylabel) == false) { sb.AppendFormat( "<label class=\"wglabel\" id=\"label_{0}\" for=\"cb_{0}\">{1}</label>", uniqueId, m_Displaylabel); } if (enabled) { writer.Write("<input type=\"hidden\" id=\"{0}_cb\" name=\"{0}_cb\" value=\"{1}\" />", uniqueId, checkedValue); } } if (string.IsNullOrEmpty(ToolTipInput) == false) { sb = new StringBuilder(Tooltip.Add(sb.ToString(), ToolTipInput)); } EditHtml(sb.ToString(), writer, cell); }
internal override void RenderEditView(WebGridHtmlWriter writer, RowCell cell) { if (AllowEdit == false || (Grid.DisplayView == DisplayView.Grid && AllowEditInGrid == false) || !Grid.GotHttpContext) { RenderLabelView(writer, cell); return; } StringBuilder s = new StringBuilder(string.Empty); StringBuilder javascript = new StringBuilder(string.Empty); s.Append(FileSource(false, cell)); StringBuilder onblur = new StringBuilder(" onblur=\""); if (Grid.InputHighLight != Color.Empty) { javascript.AppendFormat( " onfocus=\"accessKey = style.backgroundColor;style.backgroundColor='{0}';\"", Grid.ColorToHtml(Grid.InputHighLight)); onblur.Append("style.backgroundColor=accessKey;"); } if (Grid.ColumnChangedColour != Color.Empty) { onblur.AppendFormat("isChanged(this,'{0}');", Grid.ColorToHtml(Grid.ColumnChangedColour)); } onblur.Append("\""); javascript.Append(onblur); s.AppendFormat("<br/><input {0} {2} type=\"file\" class=\"wgeditfield\" name=\"{1}\" id=\"{1}\"/>", javascript, cell.CellClientId, Attributes); if (AllowEmpty && Required == false && Grid.InternalId != null && ((cell.Value != null) || (FileNameColumn != null && (cell.Value != null)))) { s.AppendFormat( "<br/><input class=\"wglinkfield\" name=\"{0}_delete\" id=\"{0}_delete\" value=\"TRUE\" type=\"checkbox\" /><label class=\"wgnowrap wglabel\" id=\"label_{0}\" for=\"{0}_delete\">{1}</label>", cell.CellClientId, Grid.GetSystemMessage("RemoveImage")); } if (Grid.FindForm != null) { if (Grid.EnableCallBack) { if (Grid.FindForm.Enctype.Equals("multipart/form-data", StringComparison.OrdinalIgnoreCase) == false) { Manager.AddScriptForClientSideEval(string.Format("document.getElementById(\"{0}\").encoding = \"multipart/form-data\";", Grid.FindForm.ClientID)); } } else { Grid.FindForm.Enctype = "multipart/form-data"; } } else { throw new GridException( string.Format("HtmlForm is not found for grid '{0}' and column '{1}'", Grid.ID, ColumnId)); } if (string.IsNullOrEmpty(ToolTipInput) == false) { s = new StringBuilder(Tooltip.Add(s.ToString(), ToolTipInput)); } EditHtml(s.ToString(), writer, cell); }
internal static void RenderDetail(ref Grid grid, ref WebGridHtmlWriter writer) { string width = grid.Width.IsEmpty == false?grid.Width.ToString() : "100%"; /* cellpadding and cellspacing are fixed because CSS does not support similar behavior*/ if (grid.IsUsingJQueryUICSSFramework) { writer.Write( //ui-helper-reset "<table width=\"{0}\" class=\"ui-widget-content wgmaindetail\" cellspacing=\"0\" cellpadding=\"0\">", width); } else { writer.Write("<table width=\"{0}\" class=\"wgmaindetail\" cellspacing=\"0\" cellpadding=\"0\">", width); } int[] sortedColumns = grid.VisibleSortedColumns; int columnWidth = -1; int allRowsColumns = 0; int ant = 0; bool firstvisiblecolumn = true; bool editablecolumns = grid.m_Forceeditablecolumns; for (int i = 0; i < sortedColumns.Length; i++) { ant += 2; // if( Grid.BasicDetailLayout ) // ant--; if (grid.DisplayRequiredColumn) { ant++; } if (ant > columnWidth) { columnWidth = ant; } Column c = grid.MasterTable.Columns[sortedColumns[i]]; if (c.UseAllRows) { allRowsColumns++; } if (c.IsVisible == false) { continue; } if (editablecolumns == false && c.AllowEdit) { editablecolumns = true; } if (firstvisiblecolumn) { firstvisiblecolumn = false; continue; } if (c.NewRowInDetail) { ant = 0; } } // Create head CreateTitle(grid, DisplayView.Detail, writer, sortedColumns, columnWidth, "td"); if ((grid.CollapseIfSlaveGrid && grid.ActiveMenuSlaveGrid != null) || grid.CollapsedGrid) { writer.Write("</table>"); return; } // Create toolbar if (string.IsNullOrEmpty(grid.GetToolbarHtml(ToolbarType.ToolbarDetailTop)) == false) { if (grid.IsUsingJQueryUICSSFramework) { writer.Write( "<tr class=\"ui-widget-header wgrow\"><td class=\"wgtoolbardetail\" colspan=\"{0}\">", columnWidth); } else { writer.Write( "<tr class=\"wgrow\"><td class=\"wgtoolbardetail\" colspan=\"{0}\">", columnWidth); } CreateDetailToolbar(grid.GetToolbarHtml(ToolbarType.ToolbarDetailTop), writer, grid, editablecolumns); writer.Write("</td></tr>"); } int antcols = 0; if (allRowsColumns > 0) { writer.Write( "<tr><td colspan=\"{0}\"><table class=\"wgrowspan\"><tr valign=\"top\"><td><table class=\"wgrowspan\">", columnWidth); } grid.MasterTable.Rows[0].RowIndex = -1; for (int i = 0; i < sortedColumns.Length; i++) { Column column = grid.MasterTable.Rows[0] != null ? grid.MasterTable.Columns[sortedColumns[i]] : grid.MasterTable.Columns[sortedColumns[i]]; if (column.UseAllRows && i > 0) { writer.Write("</table></td><td><table class=\"wgrowspan\">"); } if (i == 0 || (i < sortedColumns.Length && column.NewRowInDetail)) { antcols = 0; writer.Write("<tr class=\"wgrow\">"); } if (!column.HideDetailTitle) { ColumnHeader columnName = new ColumnHeader { m_VAlign = column.EditVAlign, m_Align = column.EditAlignTitle, m_ColumnWidth = column.WidthColumnTitle, m_Class = string.Format("{0} wgdetailheader", column.CssClassTitle), m_GridRowCount = (-1), m_GridId = grid.ID }; if (columnName.m_ColumnWidth == Unit.Empty) { int columnwidth = column.Title.Length * 12; if (columnwidth > 140) { columnwidth = 140; } columnName.m_ColumnWidth = Unit.Pixel(columnwidth); } columnName.RenderBeginTag(writer, column, null, "<td"); if (string.IsNullOrEmpty(column.ToolTipEditTitle)) { writer.Write(column.Title); } else { writer.Write(Tooltip.Add(column.Title, column.ToolTipEditTitle)); } antcols++; if (grid.BasicDetailLayout == false) { columnName.RenderEndTag(writer, "</td>"); } if (grid.DisplayRequiredColumn) { antcols++; ColumnHeader requiredColumn = new ColumnHeader { m_Class = string.Format("wgrequiredcolumn {0}", column.CssClassTitle), m_ColumnWidth = Unit.Pixel(1), m_VAlign = (column.HeightEditableColumn.IsEmpty ? column.EditVAlign : VerticalPosition.top) }; requiredColumn.RenderBeginTag(writer, column, null, "<td"); if (column.Required && column.AllowEdit) { writer.Write(@"<span title=""{0}"" class=""ui-icon ui-icon-info""/>", grid.GetSystemMessage("Required")); } else { writer.Write(" "); } requiredColumn.RenderEndTag(writer, "</td>"); } } antcols++; if ((i == sortedColumns.Length - 1 || (i + 1 < sortedColumns.Length && grid[sortedColumns[i + 1]].NewRowInDetail)) && antcols < columnWidth) { grid.Rows[0][column.ColumnId].InternalCellSpan += columnWidth - antcols; } // column.Row = grid.MasterTable.Rows[0]; column.Render(writer, grid.Rows[0][column.ColumnId]); if (i == sortedColumns.Length - 1 || (i + 1 < sortedColumns.Length && grid[sortedColumns[i + 1]].NewRowInDetail)) { writer.Write("</tr>"); } if (column.UseAllRows) { if (i + 1 < sortedColumns.Length) { writer.Write("</table></td><td><table class=\"wgrowspan\">"); } else { writer.Write("</table>"); } } else if (allRowsColumns > 0 && i + 1 == sortedColumns.Length) { writer.Write("</table>"); } } if (allRowsColumns > 0) { writer.Write("</td></tr></table></td></tr>"); } // Create tail if (string.IsNullOrEmpty(grid.GetToolbarHtml(ToolbarType.ToolbarDetailBottom)) == false) { if (grid.IsUsingJQueryUICSSFramework) { writer.Write( "<tr class=\"ui-widget-header wgrow\"><td class=\"wgtoolbardetail\" colspan=\"{0}\">", columnWidth); } else { writer.Write( "<tr class=\"wgrow\"><td class=\"wgtoolbardetail\" colspan=\"{0}\">", columnWidth); } CreateDetailToolbar(grid.GetToolbarHtml(ToolbarType.ToolbarDetailBottom), writer, grid, editablecolumns); writer.Write("</td></tr>"); } writer.Write("</table>"); }
internal void RenderGrid(ref Grid grid, ref WebGridHtmlWriter writer) { string width = grid.Width.IsEmpty == false?grid.Width.ToString() : "100%"; /* cellpadding and cellspacing are fixed because CSS does not support similar behavior*/ if (grid.IsUsingJQueryUICSSFramework) { writer.Write( "<table width=\"{0}\" id=\"{1}\" class=\"ui-widget-content\" cellpadding=\"0\" cellspacing=\"0\">", width, grid.ID); } else { writer.Write( "<table width=\"{0}\" id=\"{1}\" cellpadding=\"0\" cellspacing=\"0\">", width, grid.ID); } int[] sortedColumns = grid.VisibleSortedColumns; if (grid.RecordsPerRow == 1) { //extra table is to get rid of css background glitch in ie and safari. if (grid.IsUsingJQueryUICSSFramework) { writer.Write("<thead class=\"ui-widget-header wgthead\">"); } else { writer.Write("<thead class=\"wgthead\">"); } } CreateTitle(grid, DisplayView.Grid, writer, sortedColumns, 0, "th"); if ((grid.CollapseIfSlaveGrid && grid.ActiveMenuSlaveGrid != null) || grid.CollapsedGrid) { if (grid.RecordsPerRow == 1) { writer.Write("</thead></table>"); } else { writer.Write("</table>"); } return; } if (grid.MasterTable.Columns.Primarykeys == null) { grid.AllowDelete = false; grid.AllowEdit = false; grid.AllowNew = false; grid.AllowCopy = false; } if (string.IsNullOrEmpty(grid.GetToolbarHtml(ToolbarType.ToolbarGridTop)) == false) { if (grid.IsUsingJQueryUICSSFramework) { writer.Write("<tr class=\"ui-widget-header wgrow\"><td colspan=\"{0}\" class=\"wgtoolbargrid\">", sortedColumns.Length); } else { writer.Write("<tr class=\"wgrow\"><td colspan=\"{0}\" class=\"wgtoolbargrid\">", sortedColumns.Length); } CreateGridToolbar(grid.GetToolbarHtml(ToolbarType.ToolbarGridTop), writer, grid); writer.Write("</td></tr>"); } // Show Header bool FilterByColumns = grid.MasterTable.Columns.Exists(delegate(Column column) { return(column.FilterByColumnCollection != null && column.FilterByColumnCollection.Count > 0); }); // Create column filter if (FilterByColumns) { CreateFilterByColumns(grid, writer, sortedColumns); } // RENDER ROWS if (grid.DisplayHeader) { // CREATE HEADING writer.Write("<tr valign=\"bottom\" class=\"wgrow wggridheader\" id=\"{0}r0\">", grid.ID); for (int ii = 0; ii < sortedColumns.Length; ii++) { Column column = grid.MasterTable.Columns[sortedColumns[ii]]; ColumnHeader addcolumn = new ColumnHeader { m_Class = string.Format("{0} wgheadercell", column.CssClassTitle), m_Align = column.GridAlign, m_VAlign = VerticalPosition.bottom, m_GridRowCount = (-1), m_GridId = grid.ID }; if ((column.ColumnType == ColumnType.SystemColumn && ((WebGrid.SystemColumn)column).SystemColumnType == SystemColumn.SpacingColumn) == false) { if (column.WidthColumnHeaderTitle == Unit.Empty) { switch (column.ColumnType) { case ColumnType.SystemColumn: addcolumn.m_ColumnWidth = Unit.Percentage(1); break; case ColumnType.Decimal: case ColumnType.Number: { int columnwidth = column.Title.Length * 12; if (columnwidth > 200) { columnwidth = 200; } addcolumn.m_ColumnWidth = Unit.Pixel(columnwidth); } break; } // else // addcolumn.ColumnWidth = Unit.Pixel(100); } else { addcolumn.m_ColumnWidth = column.WidthColumnHeaderTitle; } grid[column.ColumnId].WidthColumnHeaderTitle = addcolumn.m_ColumnWidth; } addcolumn.RenderBeginTag(writer, column, null, "<th"); // writer.Write("<div class=\"wgheadercell\" id=\"{0}h{1}\">", grid.ID, column.ColumnId); if (column.UseAllRows && (grid.SelectableRows || grid.RowHighLight != Color.Empty)) { grid.RowHighLight = Color.Empty; grid.SelectableRows = false; } if (column.IsInDataSource && column.Sortable) { string[] arrayParams = new string[1]; if (grid.MasterTable.DataSource != null) { arrayParams[0] = column.ColumnId; } else /*if (column.ColumnType == ColumnType.Foreignkey || !string.IsNullOrEmpty(grid.Sql))*/ { arrayParams[0] = Interface.BuildTableElement(true, column.m_Table.DataSourceId, column.ColumnId); } /*else * { * Foreignkey fk = (Foreignkey) column; * arrayParams[0] = * Foreignkey.BuildDisplayTextSql( * string.Format(" [_pk{0}_{1}].", sortedColumns[ii], fk.DataSourceId), * fk.ValueColumn, string.Empty, * true, fk.Table); * if (fk.Table.DataSource != null) * arrayParams[0] = fk.ColumnId; * }*/ string columnHeaderText = column.HeaderText; if (string.IsNullOrEmpty(column.ToolTipGridHeaderText) == false) { columnHeaderText = Tooltip.Add(columnHeaderText, column.ToolTipGridHeaderText); } StringBuilder hyperlink; if (!grid.AllowSort) { hyperlink = new StringBuilder( String.Format("<span class=\"{1}\">{0}</span>", columnHeaderText, null)); } else { string sortimage = string.Empty; // Up/down images if (grid.DisplaySortIcons && grid.MasterTable.OrderBySortList[arrayParams[0]] != null) { /*StringBuilder img = new StringBuilder("sort-"); * if (grid.MasterTable.OrderBySortList[arrayParams[0]].m_Desc) * img.Append("down"); * else * img.Append("up"); * if (grid.MasterTable.OrderBySortList[arrayParams[0]].m_DisplayIndex != 0) * img.Append("2"); * img.Append(".gif"); * * string sort = * string.Format(" <img style=\" border:0px\" alt=\"{0}\" src=\"{1}{2}\" />", * grid.GetSystemMessage("SortIcon"), grid.ImagePath, img);*/ if (grid.MasterTable.OrderBySortList[arrayParams[0]].m_Desc) { sortimage = string.Format( @"<span title=""{0}"" style=""float:left"" class=""ui-icon ui-icon-triangle-1-s""/>", grid.GetSystemMessage("SortIcon")); } else { sortimage = string.Format( @"<span title=""{0}"" style=""float:left"" class=""ui-icon ui-icon-triangle-1-n""/>", grid.GetSystemMessage("SortIcon")); } } hyperlink = new StringBuilder("<table cellspacing=\"0\" cellpadding=\"0\"><tr><td>"); hyperlink.Append(new StringBuilder( Buttons.Anchor(grid, columnHeaderText, "ColumnHeaderClick", arrayParams, null, null, null, null, false))); hyperlink.Append("</td><td>"); hyperlink.Append(sortimage); hyperlink.Append("</td></tr></table>"); } if (grid.NonBreakingHeaders) { hyperlink.Insert(0, "<span class=\"wgnowrap\">"); hyperlink.Append("</span>"); } writer.Write(hyperlink.ToString()); } else { string css = string.Empty; if (grid.NonBreakingHeaders) { css += " wgnowrap"; } writer.Write("<span class=\"{0}\">{1}</span>", css, column.HeaderText); } addcolumn.RenderEndTag(writer, "</th>"); } writer.Write("</tr>"); // FINISH CREATE HEADING } if (grid.RecordsPerRow == 1) { writer.Write("</thead>"); } bool tree = !string.IsNullOrEmpty(grid.TreeParentId); writer.Write(grid.BeforeRowsEvent()); if (grid.Trace.IsTracing) { grid.Trace.Trace("Started Rendering Rows ({0})", grid.ID); } writer.Write("<tbody>"); CreateRows(grid, tree, null, 0, writer, sortedColumns, 0); if (grid.RecordsPerRow == 1) { CreateTotalSummary(grid, writer, sortedColumns); } if (grid.Trace.IsTracing) { grid.Trace.Trace("Stopped Rendering Rows ({0}).", grid.ID); } writer.Write(grid.AfterRowsEvent()); writer.Write("</tbody>"); if (!string.IsNullOrEmpty(grid.GetToolbarHtml(ToolbarType.ToolbarGridBottom))) { writer.Write("<tfoot>"); if (grid.IsUsingJQueryUICSSFramework) { writer.Write("<tr class=\"ui-widget-header wgrow\"><td colspan=\"{0}\" class=\"wgtoolbargrid\">", sortedColumns.Length); } else { writer.Write("<tr class=\"wgrow\"><td colspan=\"{0}\" class=\"wgtoolbargrid\">", sortedColumns.Length); } CreateGridToolbar(grid.GetToolbarHtml(ToolbarType.ToolbarGridBottom), writer, grid); writer.Write("</td></tr></tfoot>"); } writer.Write("</table>"); if (grid.Page != null) { if (grid.EnableCallBack) { writer.Write("<input type=\"hidden\" id=\"{0}checkboxes\" name=\"{0}checkboxes\" value=\"{1}\" />", grid.ClientID, m_Checkboxlist.ToString()); } else { grid.Page.ClientScript.RegisterHiddenField(string.Format("{0}checkboxes", grid.ClientID), m_Checkboxlist.ToString()); } } }