第一次做B/S的程序,还要用ASP.NET2.0,几乎什么都不熟悉~
要做的功能:
现在要做多个仅有只读查询功能的页面,在UI层仅是收集查询条件,然后把条件组合成WHERE语句传递给BI层,BI层会根据查询条件调用其他层的操作,最后会返回对应的一个DataTable数据集,然后把这个数据集使用GridView显示在UI上即可了,很简单。问题是:
1.如何在代码里动态把页面上的GridView控件和查询的DataTable结果集绑定到一起。
2.GridView的列名需要自定义,而且在DataTable返回空的时候,也要显示空表和列头在页面上。
其他分页,按列排序什么的控件都提供了~ 以前从来没用过这个GridView控件,简单尝试一下感觉不是太好用,我的问题对于使用过的朋友可能只是小菜一碟,所以请适当给点代码例子。 谢谢~~~~~~~~~~~~~
要做的功能:
现在要做多个仅有只读查询功能的页面,在UI层仅是收集查询条件,然后把条件组合成WHERE语句传递给BI层,BI层会根据查询条件调用其他层的操作,最后会返回对应的一个DataTable数据集,然后把这个数据集使用GridView显示在UI上即可了,很简单。问题是:
1.如何在代码里动态把页面上的GridView控件和查询的DataTable结果集绑定到一起。
2.GridView的列名需要自定义,而且在DataTable返回空的时候,也要显示空表和列头在页面上。
其他分页,按列排序什么的控件都提供了~ 以前从来没用过这个GridView控件,简单尝试一下感觉不是太好用,我的问题对于使用过的朋友可能只是小菜一碟,所以请适当给点代码例子。 谢谢~~~~~~~~~~~~~
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
2 自己写个空的datatable ,在绑定
自定义列名呢?用实现在GridView控件里设置好吗?
自定义列名呢?用实现在GridView控件里设置好吗?
——------------------------------------------------------
1、可以先用SqlDataSource把GridView的列先设置好,在自己动态通过
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
来把数据源绑定到GridView上
2、自己写代码对GridView的Columns进行设置。
提示:
GridView“GridView1”激发了未处理的事件“PageIndexChanging”。 GridView“GridView1”激发了未处理的事件“Sorting”。
dt.Columns.Add(new DataColumn("列名"));
关于这个问题,我刚才想直接在SQL语句里返回中文名后直接绑定就得了,那样在UI什么都不用设置。
不建议采取这种绑定方法,不利于gridview的其他操作
dim conn as new sqlconnection("server=localhost;database=数据库;uid=sa;pwd= ")
dim adapter as new sqldataadapter(sql,conn)
dim dataset as new dataset
adapter.fill(dataset)
gridview1.datasource=dataset.tables(0)
gridview1.databind()
GridView1.DataBind();
GridView1.DataBind();
能不能给段具体代码,谢谢!
2.GridView的列名需要自定义,而且在DataTable返回空的时候,也要显示空表和列头在页面上。
其他分页,按列排序什么的控件都提供了~
1.数据绑定
dim sql as string ="……"
Dim ds As Data.DataSet = New Data.DataSet
Dim ad As SqlDataAdapter = New SqlDataAdapter(sql, cn)
ad.Fill(ds, "sc_news")
GridView1.DataSource = ds
GridView1.DataBind()
分页在PageIndexChanging事件里加上
GridView1.PageIndex = e.NewPageIndex
GridView1.DataBind()
2.自定义列名要在aspx的设计页面中,使用girdview的编辑列功能里进行修改
也可以手动修改,修改后aspx文件效果如下
<…GridView……>
<Columns>
<asp:BoundField DataField="绑定表列" HeaderText="标题一" />
</Columns>
</GridView>
是我的表名,换成你的,自己起别名也行,但要容易区分,有些操作需要用
Protected Sub GridView1_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles GridView1.Sorting
Dim strFiled As String = e.SortExpression.Trim.ToString
If ViewState("SortDirction") = "" Then
ViewState("SortDirction") = "desc" '这个与填充gridview语句的排序相反
Else
If ViewState("SortDirction").ToString = "asc" Then
ViewState("SortDirction") = "desc"
Else
ViewState("SortDirction") = "asc"
End If
End If
Dim sql As String = "select * from tb_pic order by " + strFiled + " " + ViewState("SortDirction").ToString
Dim cn As SqlConnection = New SqlConnection("data source=(local);initial catalog=wddlj;user id=sa;password=20096327")
Dim ds As Data.DataSet = New Data.DataSet
Dim ad As SqlDataAdapter = New SqlDataAdapter(sql, cn)
ad.Fill(ds, "sc_news")
GridView1.DataSource = ds
GridView1.DataBind()
End Sub
本人最近也在弄这个东东啊 动态绑定GridView和DataTable只需把DataTable重新绑定即可:
GridView和DataTable绑定的代码:
this.GridView.DataSource = dt; //DataTable
this.DataBind();
如果是ds的话:
this.GridView.DataSource = ds.Table[tablename].DefaultView
this.DataBind(); 如果查询结果后需根据一个条件把所要的数据再绑定上去的话,建设用DataView:
代码如下:
DataView dv = new DataView(ds.Table[tablename]);
dv.RowFilter = "查询条件";
dv.Sort = "字段 升序/降序";
this.GridView.DataSource = dv;
this.GridView.DataBind();
最好少操作数据库,可以先把所需结果返回到一个ds中,然后再对ds进行操作,最后再把提交的结果返回到数据库,更新数据库剩下的问题回去再和你说吧
有什么不明白的加QQ 307813421 验证:GridView和DataTable绑定