在web中 把数据绑定gridview 上
实现 如下格式
名称 数据 单价 金额
a b c d
a c d f
小计 b+c (c+d)/2 d+f
bc d c f
bc c e h
小计 d+c (c+e)/2 f+h
总计 b+c+d+c d+f+f+h
请大家帮忙,
谢谢
实现 如下格式
名称 数据 单价 金额
a b c d
a c d f
小计 b+c (c+d)/2 d+f
bc d c f
bc c e h
小计 d+c (c+e)/2 f+h
总计 b+c+d+c d+f+f+h
请大家帮忙,
谢谢
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
在
ds 你綁定的數據源:
int count=0;
int count1 = 0 ;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
count += int.Parse(ds.Tables[0].Rows[i]["数据"].ToString());
count1 += int.Parse(ds.Tables[0].Rows[i]["单价"].ToString());
}
int sum = count;
int nAv = count1/ds.Tables[0].Rows.Count; if (e.Row.RowType == DataControlRowType.Footer)//判定当前的行是否属于datarow最后一行
{
DataRowView view = (DataRowView)e.Row.DataItem;
TextBox ts= (TextBox)e.Row.FindControl("textBox1");
ts.Text = "和為:"+sum.toString();
}
}
.......
SELECT dbo.AutoQuiz.QuizID, dbo.AutoQuiz.DealerID, dbo.AutoQuiz.Qtitle, dbo.AutoQuiz.QuizDate, (dbo.AutoQuizBack.BackText+dbo.AutoQuizBack.BackDate) as 小计★★★★★★★
dbo.AutoQuizBack.DealerID AS DealerIDS
FROM dbo.AutoQuiz INNER JOIN
dbo.AutoDealer ON dbo.AutoQuiz.DealerID = dbo.AutoDealer.DealerID INNER JOIN
dbo.AutoQuizBack ON dbo.AutoQuiz.QuizID = dbo.AutoQuizBack.QuizID
protected static void MergeTextCellAtColumn(DataGrid curGrid,params int[] columns)
{
foreach(int column in columns)
{
MergeTextCellAtColumn(curGrid,column);
}
}
protected static DataTable PrepareNewDataSource(DataTable dataSource,string keyColumnDataSourceName,int columnCount)
{
DataTable copy = dataSource.Copy();
for(int i = 0; i < copy.Rows.Count; i ++)
{
string curText = copy.Rows[i][keyColumnDataSourceName].ToString();
string preText = i - 1 > 0 ? copy.Rows[i - 1][keyColumnDataSourceName].ToString():string.Empty;
if(curText == preText)
{
continue;
}
else if(curText != preText && i - 1 > 0)
{
//小计行
DataRow subtotal = dataSource.NewRow();
subtotal.ItemArray = PrepareItemArray(columnCount);
dataSource.Rows.InsertAt(subtotal,i);
}
}
//最后小计行
DataRow lastSubtotal = dataSource.NewRow();
lastSubtotal.ItemArray = PrepareItemArray(columnCount);
dataSource.Rows.Add(lastSubtotal);
//最终合计行
DataRow totalRow = dataSource.NewRow();
totalRow.ItemArray = PrepareItemArray(columnCount);
dataSource.Rows.Add(totalRow);
return dataSource;
}
protected static object[] PrepareItemArray(int columnCount)
{
object[] objs = new object[columnCount];
for(int i = 0; i < objs.Length; i ++)
{
objs[i] = DBNull.Value;
}
return objs;
}
protected static decimal SafeConvertToDecimal(object value)
{
try
{
return Convert.ToDecimal(value);
}
catch
{
return 0;
}
} } //UI调用方式
//获取数据源
DataTable curDt = objPlan.QueryByYearDeptidProjcet(currYear,deptID,project);
//调用实现
PresentUtil.PreparePresent(DGList,curDt,1,"project",4,9,new int[]{5,6,7,8},new int[]{10,11,12,13,14},new int[]{10,11,12,13,14},new int[]{0,1,3,4,5,6,7,8});//数据源结构