问题描述
本人刚学asp.net(vb.net)不久,对于gridview有很多疑问,请高手指教1、gridview如何添加合计行(网上多是C的版本,没找到vb的版本);2、如何实现Gridview抬头排序,但不排序合计行;3、有没有类似SmartGrid这种可以,事先指定行数,在运行的时候可以在其中输入数据而不用每次都提交服务器,事后一起提交的Grid?
解决方案
解决方案二:
期盼高手
解决方案三:
你用个SQL语句对你的记录进行统计,然后将结果放在Gridview中。
解决方案四:
2楼的方法最容易实现了,推荐
解决方案五:
UP.
解决方案六:
JS合计,再添加行,也是可以滴
解决方案七:
在GridView的模版列的FooterTemplate中放合计的行.
解决方案八:
很好的需求,没有考虑过呢。顺便学习了。
解决方案九:
在GridView的模版列的FooterTemplate中放合计的行.抬头排序,GridView自带一个protectedvoidGridView1_Sorting(objectsender,GridViewSortEventArgse){}具体代码怎么写,你可以到网上去查看,很多。
解决方案十:
合计行可以自己用函数来实现,就是读取各行的数据相加,把结果添加到最后一列。在合计行的时候同时进行排序,这样新添加的一列就不会被排序了,排序的方法很多,用冒泡法最容易实现。
解决方案十一:
合计自己用函数来实现,就是读取各行的数据相加,把结果添加到最后一行。在进行排序之前将最后一行用row保存起来。。删除视图上的内容,,然后利用控件自身的排序功能排序(allowsorting属性)排序后在将先前保存到row中的行添加到视图上就成了
解决方案十二:
up
解决方案十三:
up
解决方案十四:
我刚才做的时候有个这样的问题如果说是在C#里面的话你用DataTable获取到值然后用DataTable的Compute()方法[code=Asp.NET]publicvoidShowMemberInfo(){deal.u_id=id;DataTableDT=WebManager.List(deal,"","ID,yyyymmdd,m_id,o_cd,price,Points","&u_id=","[OrderNo]");SumScore=Convert.ToInt32(DT.Compute("Sum(Points)","Points>0"));--看下这个地方我要对Points这个字段进行统计GridView1.DataSource=DT;Ascpager1.DataSource=DT.DefaultView;GridView1.DataSource=Ascpager1.PageDataSource;GridView1.DataBind();}[/code]
解决方案十五:
publicvoidShowMemberInfo(){deal.u_id=id;DataTableDT=WebManager.List(deal,"","ID,yyyymmdd,m_id,o_cd,price,Points","&u_id=","[OrderNo]");SumScore=Convert.ToInt32(DT.Compute("Sum(Points)","Points>0"));--看下这个地方我要对Points这个字段进行统计GridView1.DataSource=DT;Ascpager1.DataSource=DT.DefaultView;GridView1.DataSource=Ascpager1.PageDataSource;GridView1.DataBind();}
解决方案:
[code=ASP.NET]publicvoidShowMemberInfo(){deal.u_id=id;DataTableDT=WebManager.List(deal,"","ID,yyyymmdd,m_id,o_cd,price,Points","&u_id=","[OrderNo]");SumScore=Convert.ToInt32(DT.Compute("Sum(Points)","Points>0"));--看下这个地方我要对Points这个字段进行统计GridView1.DataSource=DT;Ascpager1.DataSource=DT.DefaultView;GridView1.DataSource=Ascpager1.PageDataSource;GridView1.DataBind();}[/code]
解决方案:
咦!好奇怪啊发不了代码型的LZ你先看下啊http://www.cnblogs.com/dlwang2002/archive/2007/10/24/936501.html
解决方案:
已经显示的用For语句。数据库读记录的用SQL语句。
解决方案:
学习了
解决方案:
在数据库合计吧
解决方案:
学习下,up,up!!
解决方案:
<%@PageLanguage="VB"AutoEventWireup="true"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><scriptrunat="server">FunctionCreateDataSource()AsICollectionDimdtAsSystem.Data.DataTable=NewSystem.Data.DataTableDimdrAsSystem.Data.DataRowdt.Columns.Add(NewSystem.Data.DataColumn("学生班级",GetType(System.String)))dt.Columns.Add(NewSystem.Data.DataColumn("学生姓名",GetType(System.String)))dt.Columns.Add(NewSystem.Data.DataColumn("语文",GetType(System.Decimal)))dt.Columns.Add(NewSystem.Data.DataColumn("数学",GetType(System.Decimal)))dt.Columns.Add(NewSystem.Data.DataColumn("英语",GetType(System.Decimal)))dt.Columns.Add(NewSystem.Data.DataColumn("计算机",GetType(System.Decimal)))DimiAsInteger=0Whilei<8DimrdAsSystem.Random=NewSystem.Random(Environment.TickCount*i)dr=dt.NewRowdr(0)="班级"+i.ToStringdr(1)="学生"+i.ToStringdr(2)=System.Math.Round(rd.NextDouble*100,2)dr(3)=System.Math.Round(rd.NextDouble*100,2)dr(4)=System.Math.Round(rd.NextDouble*100,2)dr(5)=System.Math.Round(rd.NextDouble*100,2)dt.Rows.Add(dr)System.Math.Min(System.Threading.Interlocked.Increment(i),i-1)EndWhileDimdvAsSystem.Data.DataView=NewSystem.Data.DataView(dt)ReturndvEndFunctionProtectedSubPage_Load(ByValsenderAsObject,ByValeAsEventArgs)IfNotIsPostBackThenGridView1.BorderColor=System.Drawing.Color.DarkOrangeGridView1.DataSource=CreateDataSource()GridView1.DataBind()EndIfEndSubProtectedSubGridView1_RowCreated(ByValsenderAsObject,ByValeAsGridViewRowEventArgs)Ife.Row.RowType=DataControlRowType.HeaderThenDimrowHeaderAsGridViewRow=NewGridViewRow(0,0,DataControlRowType.Header,DataControlRowState.Normal)DimHeaderBackColorAsString="#EDEDED"rowHeader.BackColor=System.Drawing.ColorTranslator.FromHtml(HeaderBackColor)DimnewCellsAsLiteral=NewLiteralnewCells.Text="表头文字1</th>"+_"<thcolspan='2'>表头文字2</th>"+_"<thcolspan='2'>表头文字3</th>"+_"<th>表头文字4</th>"+_"</tr>"+_"<trbgcolor='"+HeaderBackColor+"'>"+_"<thcolspan='2'>表头文字5</th>"+_"<throwspan='2'>表头文字6</th>"+_"<thcolspan='2'>表头文字7</th>"+_"</tr>"+_"<trbgcolor='"+HeaderBackColor+"'>"+_"<th>表头文字8</th>"+_"<th>表头文字9</th>"+_"<th>表头文字10</th>"+_"<th>表头文字11</th>"+_"<th>表头文字12"DimcellsAsTableCellCollection=e.Row.CellsDimheaderCellAsTableHeaderCell=NewTableHeaderCellheaderCell.RowSpan=2headerCell.Controls.Add(newCells)rowHeader.Cells.Add(headerCell)rowHeader.Cells.Add(headerCell)rowHeader.Visible=TrueGridView1.Controls(0).Controls.AddAt(0,rowHeader)EndIfEndSubProtectedSubGridView1_RowDataBound(ByValsenderAsObject,ByValeAsGridViewRowEventArgs)Ife.Row.RowType=DataControlRowType.HeaderThene.Row.Attributes.Add("style","background:#9999FF;color:#FFFFFF;font-size:14px")Elsee.Row.Attributes.Add("style","background:#FFF")EndIfEndSub</script><htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>为GridView添加多层表头</title></head><body><formid="Form1"runat="server"><asp:GridViewID="GridView1"runat="server"CellSpacing="1"CellPadding="3"Font-Size="12px"Width="600px"BackColor="#000000"BorderWidth="0"OnRowDataBound="GridView1_RowDataBound"OnRowCreated="GridView1_RowCreated"></asp:GridView></form></body></html>
解决方案:
俺是学c#的,呵呵,不好意思,看过了,顶
解决方案:
引用2楼yagebu1983的回复:
你用个SQL语句对你的记录进行统计,然后将结果放在Gridview中。
排序时会打乱,非常不好使的
解决方案:
引用10楼w136712058的回复:
合计自己用函数来实现,就是读取各行的数据相加,把结果添加到最后一行。在进行排序之前将最后一行用row保存起来。。删除视图上的内容,,然后利用控件自身的排序功能排序(allowsorting属性)排序后在将先前保存到row中的行添加到视图上就成了
相法不错,我想办法试试
解决方案:
引用14楼ws_hgo的回复:
VB.NETcodepublicvoidShowMemberInfo(){deal.u_id=id;DataTableDT=WebManager.List(deal,"","ID,yyyymmdd,m_id,o_cd,price,Points","&u_id=","[OrderNo]");SumScore=Convert.ToInt32(DT.Compute("Sum(Points)","Points>0"));--看下这个地方我要对Points这个字段进行统计GridView1.DataSource=DT;Ascpager1.DataSource=DT.Defa…
能说具体点吗?ASP.NET刚自学不久
解决方案:
SQL语句统计Functioncounttotal1()'统计记录数DimconnAsNewOleDbConnection("provider=microsoft.jet.oledb.4.0;datasource="&Server.MapPath(".dbstudents.mdb"))Dimstrsql1,strsql2AsStringstrsql1="SELECTcount(l_id)FROMbDimcmdAsNewOleDbCommand(strsql2,conn)conn.Open()counttotal1=cmd.ExecuteScalarconn.Close()EndFunctioncounttotal1为统计记录数
解决方案:
引用26楼zhaojinwen的回复:
SQL语句统计Functioncounttotal1()'统计记录数DimconnAsNewOleDbConnection("provider=microsoft.jet.oledb.4.0;datasource="&Server.MapPath(".dbstudents.mdb"))Dimstrsql1,strsql2AsStringstrsql1="SELECTcount(l_id)FROMbDimcmdAsNewOleDbCommand(strsql2,conn)conn.Open()counttotal1=cmd.ExecuteScalarco…
这个没意思