国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET GridView 實現課程表顯示(動態合并單元格)實現步驟

ASP.NET GridView 實現課程表顯示(動態合并單元格)實現步驟

2019-10-22 10:30asp.net教程網 ASP.NET教程

GridView,ASP.NET中很常用的數據顯示控件,這里,我將用這個控件來實現課程表的顯示。首先說說課程表的顯示與普通記錄的顯示有何不同?感興趣的朋友可以了解下,或許對你有所幫助

GridView,ASP.NET中很常用的數據顯示控件,這里,我將用這個控件來實現課程表的顯示。首先說說課程表的顯示與普通記錄的顯示有何不同?這里所說的普通記錄是指直接從數據庫中查詢出來的、沒有經過任何處理的記錄。通常,我們用GridView顯示這些普通記錄,只需直接將這些記錄表綁定到GridView中即可。但是,課程表的顯示可不是這么簡單,它需要將普通記錄繼續加工,需要根據記錄中具體的數據來確定數據需要顯示在哪一行、哪一列,而且需要根據課程開始時間和結束時間動態合并單元格,最后才是數據的顯示。這就是課程表顯示的難點之所在。好了,下面就看看我是如何實現的吧。 
.aspx文件中代碼: 

復制代碼代碼如下:


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="DataBind.test" %> 
<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:GridView ID="GridView1" runat="server" 
onrowdatabound="GridView1_RowDataBound1" BorderWidth="1"> 
<HeaderStyle Wrap="False" /> 
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
</asp:GridView> 
</div> 
</form> 
</body> 
</html> 


.aspx.cs文件中代碼: 

復制代碼代碼如下:


using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 
using System.Text.RegularExpressions; 
namespace DataBind 

public partial class test : System.Web.UI.Page 

protected void Page_Load(object sender, EventArgs e) 

SqlConnection con = DB.createCon();//創建連接對象 
SqlDataAdapter sda = new SqlDataAdapter(); 
sda.SelectCommand = new SqlCommand("Select * from Schedule ", con); 
DataSet ds = new DataSet(); 
sda.Fill(ds); 
DataTable table = new DataTable(); 
table = ds.Tables[0]; 
DataTable dtSchedule = new DataTable();//此表用于存放轉換后的課程表(格式與日常見到的一樣) 
//添加八列 
dtSchedule.Columns.Add("課程表"); 
for (int i = 1; i < 8; i++) 

dtSchedule.Columns.Add("星期" + WeekConvertToChinese(i)); 

//添加八行 
for (int i = 0; i < 8; i++) 

dtSchedule.Rows.Add(); 

//添加左側固定信息(第幾節課) 
for (int i = 0; i < 8; i++) 

dtSchedule.Rows[i][0] = "第" + ConvertToChinese(i+1) + "節"; 

//此數組用于存放需要合并的單元格信息。如:需要合并第一列的一、二單元格 
//那么,數組中一行的三個數分別為1,1,2 
int[][] tempArray = new int[table.Rows.Count][]; 
//數組初始化 
for (int i = 0; i < table.Rows.Count; i++) 

tempArray[i] = new int[3]; 
for (int j = 0; j < 3; j++) 

tempArray[i][j] = 0; 


//遍歷table,將每條課表信息填在tab中適當的位置。 
for (int i = 0; i < table.Rows.Count; i++) 

//課是周幾的課 
string week = Convert.ToString(table.Rows[i]["Week"]); 
//課開始時間 
string startTime =Convert.ToString( table.Rows[i]["StartTime"]); 
//課結束時間 
string endTime = Convert.ToString(table.Rows[i]["EndTime"]); 
for (int weekCount = 1; weekCount < 8; weekCount++)//確定本條數據將來顯示在哪一列 

if (week == Convert.ToString(dtSchedule.Columns[weekCount].ColumnName))//跟星期做比較,確定數據應該寫在那一列 

tempArray[i][0] = weekCount;//記錄星期(確定將來的數據顯示在哪一列) 
break; 


for (int j = 0; j < dtSchedule.Rows.Count; j++)//確定課程的開始時間和結束時間,并填寫數據 

string section =Convert.ToString( dtSchedule.Rows[j][0]);//當前行是第幾節課 
if (section == startTime)//判斷課程開始時間,確定位置,填寫數據 

tempArray[i][1] = j;//記錄上課開始時間(確定數據數據顯示在哪一行) 
dtSchedule.Rows[j][tempArray[i][0]] = Convert.ToString(table.Rows[i]["CourseName"]) + "<br />" + 
Convert.ToString(table.Rows[i]["TeacherName"]); 

if (section == endTime)//判斷課程結束時間,記錄位置 

tempArray[i][2] = j;//記錄課結束時間 
break; 



GridView1.DataSource = dtSchedule; 
GridView1.DataBind(); 
//合并單元格 
for (int i = 0; i < table.Rows.Count; i++) 
GroupCol(GridView1, tempArray[i][0], tempArray[i][1], tempArray[i][2]); 

/// <summary> 
/// 合并某列中的多個單元格 
/// </summary> 
/// <param name="GridView1"></param> 
/// <param name="cols">要合并的那一列</param> 
/// <param name="sRow">開始行</param> 
/// <param name="eRow">結束行</param> 
public static void GroupCol(GridView GridView1, int cols, int sRow, int eRow) 

//if (GridView1.Rows.Count < 1 || cols > GridView1.Columns.Count - 1) 
//{ 
// return; 
//} 
//if (GridView1.Rows.Count < 1 || cols > GridView1.Rows[0].Cells.Count - 1) 
//{ 
// return; 
//} 
TableCell oldTc = GridView1.Rows[sRow].Cells[cols]; 
for (int i = 1; i <= eRow - sRow; i++) 

TableCell tc = GridView1.Rows[sRow + i].Cells[cols]; 
tc.Visible = false; 
if (oldTc.RowSpan == 0) 

oldTc.RowSpan = 1; 

oldTc.RowSpan++; 
oldTc.VerticalAlign = VerticalAlign.Middle; 


string ConvertToChinese(int x) 

string cstr = ""; 
switch (x) 

case 0: cstr = "零"; break; 
case 1: cstr = "一"; break; 
case 2: cstr = "二"; break; 
case 3: cstr = "三"; break; 
case 4: cstr = "四"; break; 
case 5: cstr = "五"; break; 
case 6: cstr = "六"; break; 
case 7: cstr = "七"; break; 
case 8: cstr = "八"; break; 
case 9: cstr = "九"; break; 

return (cstr); 

//轉換星期幾 
string WeekConvertToChinese(int x) 

string cstr = ""; 
switch (x) 

case 1: cstr = "一"; break; 
case 2: cstr = "二"; break; 
case 3: cstr = "三"; break; 
case 4: cstr = "四"; break; 
case 5: cstr = "五"; break; 
case 6: cstr = "六"; break; 
case 7: cstr = "日"; break; 

return (cstr); 

/// <summary> 
/// 使得GridView中的內容可以換行 
/// </summary> 
/// <param name="sender"></param> 
/// <param name="e"></param> 
protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e) 

if (e.Row.RowType == DataControlRowType.DataRow) 

TableCellCollection cells = e.Row.Cells; 
foreach (TableCell cell in cells) 

cell.Text = Server.HtmlDecode(cell.Text); //注意:此處所有的列所有的html代碼都會按照html格式輸出,如果只需要其中的哪一列的數據需要轉換,此處需要小的修改即可。 





最終顯示效果:
ASP.NET GridView 實現課程表顯示(動態合并單元格)實現步驟

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美一级二级视频 | 国产精品毛片久久久 | 久久首页| 国产欧美一区二区精品久久 | 亚洲网站在线观看 | 一呦二呦三呦国产精品 | 国产精品久久久久久久久久久免费看 | 午夜精品美女久久久久av福利 | 欧美精品1区2区3区 日本电影中文字幕 | 久久精品国产欧美亚洲人人爽 | 成人免费色 | 中文字幕一区二区三区四区 | 国产精品第一国产精品 | av免费网站 | 精品九九久久 | 欧美自拍视频 | 国产精品1区2区在线观看 | 亚洲精品一二三 | 午夜伦理影院 | 伦一区二区三区中文字幕v亚洲 | 成人免费视频在线观看 | 久久久亚洲| 在线观看国产一区二区 | 国产成人99久久亚洲综合精品 | 国产亚洲一区二区精品 | 中文字幕视频一区 | 精品久久久久香蕉网 | 欧美午夜精品一区二区三区电影 | 精品视频二区 | av在线一区二区 | 色噜噜狠狠狠综合曰曰曰88av | 看亚洲a级一级毛片 | 视频一区二区三区中文字幕 | 精品一区二区久久 | 国产精品久久久久久久午夜片 | 我不卡一区| 欧美一级片在线观看 | 国产一区二区三区在线免费 | 国产精品久久亚洲 | 国产一区美女视频 | 91五月天|