麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

ASPxGridView-單元格合并

2019-11-17 01:52:40
字體:
供稿:網(wǎng)友

aspxGridView-單元格合并

<dx:ASPxGridView ID="gridView" runat="server" ClientInstanceName="gvResults" Width="550px" AutoGenerateColumns="True" KeyFieldName="OrderID" DataSourceID="accessDataSource1"></dx:ASPxGridView><asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/nwind.mdb" SelectCommand="SELECT * FROM [Orders]"></asp:AccessDataSource>

<script type="text/javascript"> window.__OriginalDXUpdateRowCellsHandler = ASPxClientTableFixedColumnsHelper.PRototype.ChangeCellsVisibility; ASPxClientTableFixedColumnsHelper.prototype.ChangeCellsVisibility = function(row, startIndex, endIndex, display) { if((row.cells.length == 0) || (row.cells[0].getAttribute("ci") == null)) window.__OriginalDXUpdateRowCellsHandler(row, startIndex, endIndex - 1, display); // base call else { //custom processing for(var i = startIndex; i <= endIndex; i++) { var cell = FindCellWithColumnIndex(row, i); if(cell != null) cell.style.display = display; } } }; function FindCellWithColumnIndex(row, colIndex) { for(var i = 0; i < row.cells.length; i++) { if(row.cells[i].getAttribute("ci") == colIndex) return row.cells[i]; } return null; }=================================

protected void Page_Load(object sender, EventArgs e) { if (!(IsPostBack || IsCallback)) gridView.DataBind(); new ASPxGridViewCellMerger(gridView); gridView.Columns[0].FixedStyle = GridViewColumnFixedStyle.Left; gridView.Columns[1].FixedStyle = GridViewColumnFixedStyle.Left; gridView.Columns[0].CellStyle.BackColor = Color.FromArgb(0xEE, 0xEE, 0xEE); gridView.Columns[1].CellStyle.BackColor = Color.FromArgb(0xEE, 0xEE, 0xEE); gridView.Settings.ShowHorizontalScrollBar = true; }

===========CellMerger.cs=====================

using System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using DevExpress.Web.ASPxGridView;using System.Collections.Generic;public class ASPxGridViewCellMerger { ASPxGridView grid; Dictionary<GridViewDataColumn, TableCell> mergedCells = new Dictionary<GridViewDataColumn, TableCell>(); Dictionary<TableCell, int> cellRowSpans = new Dictionary<TableCell, int>(); public ASPxGridViewCellMerger(ASPxGridView grid) { this.grid = grid; Grid.HtmlRowCreated += new ASPxGridViewTableRowEventHandler(grid_HtmlRowCreated); Grid.HtmlDataCellPrepared += new ASPxGridViewTableDataCellEventHandler(grid_HtmlDataCellPrepared); } public ASPxGridView Grid { get { return grid; } } void grid_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e) { //add the attribute that will be used to find which column the cell belongs to e.Cell.Attributes.Add("ci", e.DataColumn.VisibleIndex.ToString()); if (cellRowSpans.ContainsKey(e.Cell)) { e.Cell.RowSpan = cellRowSpans[e.Cell]; } } void grid_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e) { if (Grid.GetRowLevel(e.VisibleIndex) != Grid.GroupCount) return; for (int i = e.Row.Cells.Count - 1; i >= 0; i--) { DevExpress.Web.ASPxGridView.Rendering.GridViewTableDataCell dataCell = e.Row.Cells[i] as DevExpress.Web.ASPxGridView.Rendering.GridViewTableDataCell; if (dataCell != null) { MergeCells(dataCell.DataColumn, e.VisibleIndex, dataCell); } } } void MergeCells(GridViewDataColumn column, int visibleIndex, TableCell cell) { bool isNextTheSame = IsNextRowHasSameData(column, visibleIndex); if (isNextTheSame) { if (!mergedCells.ContainsKey(column)) { mergedCells[column] = cell; } } if (IsPrevRowHasSameData(column, visibleIndex)) { ((TableRow)cell.Parent).Cells.Remove(cell); if (mergedCells.ContainsKey(column)) { TableCell mergedCell = mergedCells[column]; if (!cellRowSpans.ContainsKey(mergedCell)) { cellRowSpans[mergedCell] = 1; } cellRowSpans[mergedCell] = cellRowSpans[mergedCell] + 1; } } if (!isNextTheSame) { mergedCells.Remove(column); } } bool IsNextRowHasSameData(GridViewDataColumn column, int visibleIndex) { //is it the last visible row if (visibleIndex >= Grid.VisibleRowCount - 1) return false; return IsSameData(column.FieldName, visibleIndex, visibleIndex + 1); } bool IsPrevRowHasSameData(GridViewDataColumn column, int visibleIndex) { ASPxGridView grid = column.Grid; //is it the first visible row if (visibleIndex <= Grid.VisibleStartIndex) return false; return IsSameData(column.FieldName, visibleIndex, visibleIndex - 1); } bool IsSameData(string fieldName, int visibleIndex1, int visibleIndex2) { // is it a group row? if (Grid.GetRowLevel(visibleIndex2) != Grid.GroupCount) return false; return object.Equals(Grid.GetRowValues(visibleIndex1, fieldName), Grid.GetRowValues(visibleIndex2, fieldName)); }}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 一区二区三区欧洲 | 国产精品麻豆一区二区三区 | 毛片在哪看| 欧美成人免费在线视频 | 国产二区三区视频 | 久久网国产精品 | www国产成人免费观看视频,深夜成人网 | 青青草成人av | 一本色道久久综合狠狠躁篇适合什么人看 | 久久久久久久久久亚洲 | 免费黄色在线电影 | 国产精品麻豆一区二区三区 | 2021狠狠操 | 欧洲狠狠鲁 | 国产成人高清在线 | 成人黄色小视频网站 | 一级在线观看视频 | 欧美一级做一级爱a做片性 91在线视频观看 | 欧美女优一区 | 中文字幕国产一区 | 久久久国产电影 | 91www成人久久 | av成人在线免费观看 | 久草在线最新免费 | 成年性羞羞视频免费观看无限 | 久久免费看毛片 | 久草在线资源福利站 | 羞羞视频入口 | 亚洲网站在线观看视频 | 中文字幕在线观看www | freexxx69性欧美hd | 久久精品欧美一区二区三区不卡 | 精精国产xxxx视频在线野外 | 久久久日韩av免费观看下载 | www.com香蕉 | 国产在线导航 | 一级做a爰性色毛片免费1 | 韩国一大片a毛片 | 中文字幕国产欧美 | 看中国一级毛片 | 黄色片网站在线看 |