如何将DataGrid表纵向排列 那换个角度呢?如何将DataGrid的表宽设置为1列?也就是说让每行显示1个列项然后换行显示另一个列项 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当你把datagrid 添进 dataset里,在默认的情况下表是横的,也就是上面是一排列名,下面是一排数据。现在我想把这个表纵向排列,也就是要让他在最左边1列显示数据库的表的列名,在右边显示数据。比如姓名 年龄 学号阿布 23 01转换成这样的效果:姓名 阿布年龄 23学号 01 给你一个想法,看可不可以实现,这样的我没有做过了,可以通过矩正变换来实现,估计需要写个算法,来实现,好象在DATAGRID中实现起来有点难度,可以考虑在DATAVIEW里实现,不知道我的想法行不行, 如果不是非用DATAGRID,用DATALIST可以轻松实现 哈,我在网上剽窃到一个转换的方法,不过相当麻烦的说。现在拿出来与大家分享。不过我还是想知道DATALIST如何实现,那个大虾来讲讲阿~谢谢方法:分别以DataGrid和HtmlTable来显示转换前和转换后的数据,先读取数据库中的纪录存到一个DataSet中,然后从DataSet中读取数据并创建HtmlTable的行和列。代码:DataGrid_valign.aspx--------------------<%@ Page language="c#" Codebehind="DataGrid_valign.aspx.cs" AutoEventWireup="false" Inherits="test.DataGrid_valign" %><HTML><HEAD><title>DataGrid数据视图转换</title></HEAD><body><form id="Form1" runat="server"><h1 align="center">把表格数据转换为横向显示</h1>原始数据<br><asp:datagrid id="DataGrid1" runat="server" BackColor="LemonChiffon"><HeaderStyle BackColor="LightGreen"></HeaderStyle></asp:datagrid><br>转换后的数据<br><asp:table id="Table1" runat="server"></asp:table></form></body></HTML>-------------------DataGrid_valign.aspx.cs-------------------using System;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;/*Filename : DataGrid_valign.aspx.csAuthor : AYEELDescription : 把数据转换为纵向视图 */namespace test{ public class DataGrid_valign : System.Web.UI.Page { protected System.Web.UI.WebControls.Table Table1; protected System.Web.UI.WebControls.DataGrid DataGrid1; private void Page_Load(object sender, System.EventArgs e) { // 初始化页面 SqlConnection Conn = new SqlConnection(); string connStr = "server=localhost;database=Northwind;user id=n;password=n"; Conn.ConnectionString = connStr; string sqlStr = "select EmployeeID,LastName,FirstName,TitleOfCourtesy from Employees"; SqlDataAdapter cmd2 = new SqlDataAdapter(sqlStr,Conn); DataSet ds = new DataSet(); cmd2.Fill(ds,"table1");; //数据绑定 DataGrid1.DataSource = ds.Tables["table1"].DefaultView; DataGrid1.DataBind(); foreach (DataColumn dc in ds.Tables["table1"].Columns) { //转换数据视图 TableRow trow = new TableRow(); TableCell tcell = new TableCell(); foreach (DataRow dr in ds.Tables["table1"].Rows) { //循环添加标题 tcell.Text = dc.ColumnName; trow.BackColor = System.Drawing.Color.LemonChiffon; tcell.BackColor = System.Drawing.Color.LightGreen; tcell.Controls.Add(new LiteralControl(dc.ColumnName.ToString())); trow.Cells.Add(tcell); } foreach (DataRow dr in ds.Tables["table1"].Rows ) { //循环添加表格数据 TableCell tcelldata = new TableCell(); //创建新行(数据行) tcelldata.Controls.Add(new LiteralControl(dr[dc.ColumnName].ToString())); trow.Cells.Add(tcelldata); } Table1.Rows.Add(trow); //添加表格行(包括标题和数据的行) } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion }} C# combobox 选项更改后,获取新的数据库内容传递给textbox vs2008_asp.net 在设时界面与源(代码)界面不同步 winform datagridview 怎么根据单元格内容设置换行 如何提取查询出来的值 想学习C# TCP的开发,特求一些开源的基于TCP的服务程序,谢谢 C#线程问题,为什么我上传多个文件时它总是上传两个就重复第二个其它的不传了 C#数据恢复出现的错误 水晶报表的多个表显示问题? 求助!!!帮忙还给分!!! 菜鸟请教各位高手,在C#中如何实现数字或日期的格式化啊 有关删除虚拟目录的问题 在webform里面用DataGrid1如何删除一条记录?谢谢
姓名 年龄 学号
阿布 23 01
转换成这样的效果:
姓名 阿布
年龄 23
学号 01
分别以DataGrid和HtmlTable来显示转换前和转换后的数据,先读取数据库中的纪录存到一个DataSet中,然后从DataSet中读取数据并创建HtmlTable的行和列。
代码:
DataGrid_valign.aspx
--------------------
<%@ Page language="c#" Codebehind="DataGrid_valign.aspx.cs" AutoEventWireup="false" Inherits="test.DataGrid_valign" %>
<HTML>
<HEAD>
<title>DataGrid数据视图转换</title>
</HEAD>
<body>
<form id="Form1" runat="server">
<h1 align="center">把表格数据转换为横向显示</h1>
原始数据<br>
<asp:datagrid id="DataGrid1" runat="server" BackColor="LemonChiffon">
<HeaderStyle BackColor="LightGreen"></HeaderStyle>
</asp:datagrid><br>转换后的数据<br>
<asp:table id="Table1" runat="server"></asp:table></form>
</body>
</HTML>
-------------------
DataGrid_valign.aspx.cs
-------------------
using System;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
/*
Filename : DataGrid_valign.aspx.cs
Author : AYEEL
Description : 把数据转换为纵向视图
*/
namespace test
{
public class DataGrid_valign : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Table Table1;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{
// 初始化页面
SqlConnection Conn = new SqlConnection();
string connStr = "server=localhost;database=Northwind;user id=n;password=n";
Conn.ConnectionString = connStr;
string sqlStr = "select EmployeeID,LastName,FirstName,TitleOfCourtesy from Employees";
SqlDataAdapter cmd2 = new SqlDataAdapter(sqlStr,Conn);
DataSet ds = new DataSet();
cmd2.Fill(ds,"table1");;
//数据绑定
DataGrid1.DataSource = ds.Tables["table1"].DefaultView;
DataGrid1.DataBind(); foreach (DataColumn dc in ds.Tables["table1"].Columns)
{
//转换数据视图
TableRow trow = new TableRow();
TableCell tcell = new TableCell();
foreach (DataRow dr in ds.Tables["table1"].Rows)
{
//循环添加标题
tcell.Text = dc.ColumnName;
trow.BackColor = System.Drawing.Color.LemonChiffon;
tcell.BackColor = System.Drawing.Color.LightGreen;
tcell.Controls.Add(new LiteralControl(dc.ColumnName.ToString()));
trow.Cells.Add(tcell);
}
foreach (DataRow dr in ds.Tables["table1"].Rows )
{
//循环添加表格数据
TableCell tcelldata = new TableCell(); //创建新行(数据行)
tcelldata.Controls.Add(new LiteralControl(dr[dc.ColumnName].ToString()));
trow.Cells.Add(tcelldata);
}
Table1.Rows.Add(trow); //添加表格行(包括标题和数据的行)
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}