ASP.NET中使用GridView实现分级显示
2010-06-08 11:28
591 查看
在实际项目开发中,往往需要用到在页面上对列表的项目实现分级显示,在 ASP.NET中没有现成的控件。
在实际项目开发中,我找到了一种利用GridView实现分级效果的方法,最终效果图如下:
代码
在实际项目开发中,我找到了一种利用GridView实现分级效果的方法,最终效果图如下:
代码
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then BindGridView() End If End Sub '1.首先找出Customers数据 Public Sub BindGridView() Dim strSQL As String = "SELECT * FROM Customers" Dim dtTable As DataTable = GetDataTable(strSQL) sCount = dtTable.Rows.Count Me.GridView1.DataSource = dtTable Me.GridView1.DataBind() End Sub 'Customers数据绑定时要做的事情 Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim HCustomerID As String = CType(e.Row.FindControl("HCustomerID"), HiddenField).Value Dim TRCustomers As HtmlTableRow = CType(e.Row.FindControl("TRCustomers"), HtmlTableRow) If HCustomerID.Trim.Length > 0 Then '鼠标移过时变换css样式。 e.Row.Attributes.Add("onmouseover", "currentcolor=this.className;this.className='MouseOver';") e.Row.Attributes.Add("onmouseout", "this.className=currentcolor;") '找出此Customer的所有Orders Dim strSQL As String = "SELECT * FROM Orders WHERE CustomerID='" & HCustomerID & "'" Dim dtTable As DataTable = GetDataTable(strSQL) Dim imgFlag As Image = CType(e.Row.FindControl("imgFlag"), Image) If dtTable.Rows.Count > 0 Then Dim GridViewOrders As GridView = CType(e.Row.FindControl("GridViewOrders"), GridView) GridViewOrders.DataSource = dtTable GridViewOrders.DataBind() '设置点击某行时的Javascript Dim strScript As New StringBuilder strScript.Append("var obj = document.getElementById('" & TRCustomers.ClientID & "');") strScript.Append("var objimg = document.getElementById('" & imgFlag.ClientID & "');") strScript.Append("if (obj.style.display == 'none') {") strScript.Append(" obj.style.display = '';") strScript.Append(" objimg.src = 'images/up.gif';") strScript.Append("}else{") strScript.Append(" obj.style.display = 'none';") strScript.Append(" objimg.src = 'images/dn.gif';") strScript.Append("}") e.Row.Attributes.Add("onclick", strScript.ToString) Else imgFlag.ImageUrl = "~/images/up.gif" End If End If End If End Sub Protected Sub doOnRowDataBoundOrders(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then Dim HOrderID As String = CType(e.Row.FindControl("HOrderID"), HiddenField).Value Dim TROrders As HtmlTableRow = CType(e.Row.FindControl("TROrders"), HtmlTableRow) If HOrderID.Trim.Length > 0 Then '鼠标移过时变换css样式。 e.Row.Attributes.Add("onmouseover", "currentcolor=this.className;this.className='MouseOver';") e.Row.Attributes.Add("onmouseout", "this.className=currentcolor;") '找出此Order的所有Order Details Dim strSQL As String = "SELECT Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].UnitPrice * [Order Details].Quantity AS OPrice, [Order Details].Discount, " & _ "([Order Details].UnitPrice * [Order Details].Quantity) * (1.00 - [Order Details].Discount) AS PPrice, Products.QuantityPerUnit " & _ "FROM [Order Details] INNER JOIN Products ON [Order Details].ProductID = Products.ProductID " & _ "WHERE OrderID='" & HOrderID & "'" Dim dtTable As DataTable = GetDataTable(strSQL) Dim imgFlag1 As Image = CType(e.Row.FindControl("imgFlag1"), Image) If dtTable.Rows.Count > 0 Then Dim GridViewOrderDetails As GridView = CType(e.Row.FindControl("GridViewOrderDetails"), GridView) GridViewOrderDetails.DataSource = dtTable GridViewOrderDetails.DataBind() '设置点击某行时的Javascript Dim strScript As New StringBuilder strScript.Append("var obj = document.getElementById('" & TROrders.ClientID & "');") strScript.Append("var objimg = document.getElementById('" & imgFlag1.ClientID & "');") strScript.Append("if (obj.style.display == 'none') {") strScript.Append(" obj.style.display = '';") strScript.Append(" objimg.src = 'images/up.gif';") strScript.Append("}else{") strScript.Append(" obj.style.display = 'none';") strScript.Append(" objimg.src = 'images/dn.gif';") strScript.Append("}") e.Row.Attributes.Add("onclick", strScript.ToString) End If End If End If End Sub
相关文章推荐
- ASP.NET中使用GridView实现分级显示的代码
- ASP.NET中使用GridView实现分级显示的代码
- ASP.NET使用GridView导出Excel实现方法
- ASP.NET 2.0 中的数据操作:: 使用 GridView 和DetailView实现的主/从报表
- ASP.NET 2.0 中的数据操作:: 使用 GridView 和DetailView实现的主/从报表
- Asp.net的GridView控件实现单元格可编辑方便用户使用
- [翻译] Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用 GridView 和DetailView实现的主/从报表
- Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用 GridView 和DetailView实现的主/从报表
- Asp.net 中使用GridView控件实现Checkbox单选
- 使用ASP.NET AJAX让GridView的数据行显示提示框
- ASP.NET GridView 实现课程表显示(动态合并单元格)
- Asp.net GridView使用大全(分页实现)
- 在ASP.NET 2.0中操作数据之十:使用 GridView和DetailView实现的主/从报表
- [翻译]使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)
- ASP.NET生成树形显示的GridView实现思路
- ASP.NET生成树形显示的GridView实现思路
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)
- 使用asp.net Ajax控件PopupControlExtender与GridView联合显示详情列表
- Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用 GridView 和DetailView实现的主/从报
- 在ASP.NET使用JavaScript显示信息提示窗口实现原理及代码