Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/1/30 1:27:02
DataList实现“行转列”代码_[Asp.Net教程]

DataList实现“行转列”代码_[Asp.Net教程]
开发中经常遇到行转列的情况,一般都是在SQL中用 case 来解决这类问题,但有时候我们会需要知道列数并做一些事情。
这时,DataList 就发挥它的作用了。主要应用的就是它的RepeatDirection 属性.


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataList.aspx.cs" Inherits="temp_DataList" %>





无标题页



名称:

金额:




’>
’>


’>
’>







using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class temp_DataList : System.Web.UI.Page
{
private DataTable getDateTable()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Name", typeof(String)));
dt.Columns.Add(new DataColumn("Money", typeof(Int32)));
DataRow dr;
dr = dt.NewRow();
dr[0] = "岗位工资";
dr[1] = 100;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "养老";
dr[1] = 200;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "午餐";
dr[1] = 300;
dt.Rows.Add(dr);


return dt;
}

private void DataListBind(DataTable dt)
{
int column = dt != null ? dt.Rows.Count : 0;
column = column > 6 ? 6 : column;//样式的原因,控制最多6个
dl.RepeatColumns = column;
dl.RepeatDirection = RepeatDirection.Horizontal;
dl.DataSource = dt;
dl.DataBind();
}


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["dt"] = getDateTable();
DataListBind(ViewState["dt"] as DataTable);
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
DataTable dt = ViewState["dt"] as DataTable;
if (dt != null)
{
DataRow dr;
dr = dt.NewRow();
dr[0] = txtName.Text.Trim();
int money;
int.TryParse(txtMoney.Text, out money);
dr[1] = money;
dt.Rows.Add(dr);
DataListBind(dt);
}

}
}



If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759