asp.net GridView控件中TreeView控件的应用

 1. XXX.aspx页面代码示例:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="PSearchTreeView.aspx.vb" Inherits="PSearchTreeView" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">              
    <div style="text-align:center; font-family:Calibri,Helvetica,Arial,sans-serif; margin:0 auto">

<asp:GridView ID="grdvDisplayDRAM"  runat="server" AutoGenerateColumns="False" AllowSorting="False"  Width="99.4%"  Font-Size="10pt"  BorderStyle="Solid" BorderColor="#EFEFEF" BorderWidth="2px" GridLines="Vertical">
            <columns>
                  <asp:TemplateField HeaderText="InternalID"  Visible="False" HeaderStyle-BorderColor="transparent">
                    <ItemStyle HorizontalAlign="Left" BorderColor="#EFEFEF"/>
                       <ItemTemplate>
                          <asp:Label ID="LblInternalID" runat="server" Text='<%# Bind("InternalID") %>'></asp:Label>
                       </ItemTemplate>
                  </asp:TemplateField>          
               <asp:TemplateField HeaderText="Part Number" HeaderStyle-BorderColor="transparent">
                    <ItemStyle HorizontalAlign="Left" BorderColor="#EFEFEF"/>
                       <ItemTemplate>
                          <asp:Label ID="LblPartNumber" runat="server" Text='<%# Bind("PartNumber") %>'></asp:Label>
                       </ItemTemplate>
                  </asp:TemplateField>           
                 <asp:TemplateField HeaderText="Sample & Buy" HeaderStyle-BorderColor="transparent">
                    <ItemStyle HorizontalAlign="Left" BorderColor="#EFEFEF"/>
                       <ItemTemplate>
                         <asp:TreeView ID="tvPSearch" runat="server" OnTreeNodeExpanded="Node_Expand" OnTreeNodeCollapsed="Node_Collapse">                                  
                         </asp:TreeView>  
                       </ItemTemplate>
                  </asp:TemplateField>                        
            </columns>
        </asp:GridView>

  </div> 
    </form>
</body>
</html>

 

 

 

2. XXX.aspx.vb页面代码示例:

Partial Class PSearchTreeView
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then     
            Bind()
        End If
    End Sub
    Private Sub Bind()
        Dim ds As DataSet
        Dim dt As New DataTable
        Dim _ReturnValue As New BizNetReturnValue
        Dim _PSearchDRAMApp As New PSearch_DRAMApp

        Dim SearchStr As String
        SearchStr = "Density='16Mb' or Density='32Mb'"
        _ReturnValue = _PSearchDRAMApp.PSearch_DRAMGetList(SearchStr)
        If _ReturnValue.ReturnFlag Then
            ds = _ReturnValue.ReturnObject
            dt = ds.Tables("PSearch_DRAM")
            Try
                Me.grdvDisplayDRAM.DataSource = dt
                Me.grdvDisplayDRAM.DataBind()
            Catch ex As Exception
                Response.Write(ex.Message)
            End Try
        Else
            Response.Write(_ReturnValue.ReturnMessage)
        End If


        Dim i As Integer
        If dt.Rows.Count > 0 Then
            For i = 0 To dt.Rows.Count - 1
                Dim lblPartNumber As String = CType(grdvDisplayDRAM.Rows(i).FindControl("LblPartNumber"), Label).Text
                Dim node As New TreeNode
                node.Text = "Sample & Buy"
                node.Value = lblPartNumber
                node.Expanded = False
                Dim tv As New TreeView
                tv = CType(grdvDisplayDRAM.Rows(i).FindControl("tvPSearch"), TreeView)
                tv.Nodes.Add(node)
                Dim childNode As New TreeNode
                childNode.Text = ""
                childNode.Value = ""
                node.ChildNodes.Add(childNode)
            Next
        End If
    End Sub
    Sub Node_Expand(ByVal sender As Object, ByVal e As TreeNodeEventArgs)
        Dim TheComApp As New RAofCombinedTableApp
        Dim TheReturnObject As New RAofCombinedTableInfo
        Dim dt As New DataTable

        TheReturnObject = TheComApp.PartNumberSearch(e.Node.Value.Trim.ToString)
        If TheReturnObject.ReturnFlag Then
            dt = TheReturnObject.ReturnList
        End If

        Dim PNflag As String = "false"
        If e.Node.Text = "Sample & Buy" Then
            e.Node.ChildNodes.Clear()
            If dt.Rows.Count = 0 Then
                Dim node1 As New TreeNode
                node1.Text = "Sorry,No record."
                node1.Value = ""
                e.Node.ChildNodes.Add(node1)
            ElseIf dt.Rows.Count > 0 Then
                Dim i As Integer
                Dim myArray As New ArrayList
                For i = 0 To dt.Rows.Count - 1
                    Dim node2 As New TreeNode
                    node2.Text = dt.Rows(i)(5).ToString
                    node2.Value = dt.Rows(i)(5).ToString
                    If node2.Text <> "" Then
                        If myArray.Contains(node2.Text) = False Then
                            myArray.Add(node2.Text)
                            PNflag = "true"
                            e.Node.ChildNodes.Add(node2)
                            Dim childNode As New TreeNode
                            childNode.Text = ""
                            childNode.Value = ""
                            node2.ChildNodes.Add(childNode)
                        End If                      
                    End If
                Next
                If PNflag = "false" Then
                    Dim node3 As New TreeNode
                    node3.Text = "Sorry,No record."
                    node3.Value = ""
                    e.Node.ChildNodes.Add(node3)
                End If
            End If
        ElseIf e.Node.Parent.Text = "Sample & Buy" Then
            e.Node.ChildNodes.Clear()
            Dim node4 As New TreeNode
            Dim TempString As New StringBuilder
            Dim str As String
            Dim i As Integer
            TempString.Append("<table ruant='server' border='1' cellpadding='2' cellspacing='2' style='border-collapse:collapse' width='80%'>")
            TempString.Append("<tr>")
            TempString.Append("<th>Dist Name</th>")
            TempString.Append("<th>Quantity</th>")
            TempString.Append("<th>Order Now</th>")
            TempString.Append("</tr>")
            Dim theDistiName As String
            Dim thePartNumber As String
            Dim theQuantity As String
            Dim myArray As New ArrayList
            For i = 0 To dt.Rows.Count - 1
                theDistiName = dt.Rows(i)(1).ToString
                thePartNumber = dt.Rows(i)(5).ToString
                theQuantity = dt.Rows(i)(6).ToString
                If myArray.Contains(theDistiName) = False And e.Node.Value = thePartNumber Then
                    myArray.Add(theDistiName)
                    If theDistiName = "Arrow" Then
                        Dim TheArrowInfo As New RAofArrowInfo
                        Dim TheArrowApp As New RAofArrowApp
                        TheArrowInfo = TheArrowApp.PartNumberSearch(thePartNumber)
                        TempString.Append("<tr>")
                        TempString.Append("<td>" & theDistiName & "</td>")
                        TempString.Append("<td>" & TheArrowInfo.Quantity & "</td>")
                        If TheArrowInfo.PageURL <> "" Then
                            TempString.Append("<td><a href='" & TheArrowInfo.PageURL.ToString & "' target='_blank'><input ID='ArrowOrder' type='button' value='Order Now' runat='server'/></a></td>")
                        Else
                            TempString.Append("<td><input ID='ArrowOrder' type='button' value='Order Now' runat='server'/></td>")
                        End If
                        TempString.Append("</tr>")
                    ElseIf theDistiName = "Digikey" Then
                        Dim TheDigiKeyApp As New WSofDigiKey
                        Dim DigiKeyReturnObject As New SampleBuyProductInfo
                        DigiKeyReturnObject = TheDigiKeyApp.PartNumberSearch(thePartNumber)
                        If DigiKeyReturnObject.ReturnFlag Then
                            TempString.Append("<tr>")
                            TempString.Append("<td>" & theDistiName & "</td>")
                            TempString.Append("<td>" & DigiKeyReturnObject.Quantity & "</td>")
                            If DigiKeyReturnObject.PageURL <> "" Then
                                TempString.Append("<td><a href='" & DigiKeyReturnObject.PageURL.ToString & "' target='_blank'><input id='DigikeyOrder' type='button' value='Order Now'  runat='server'/></a></td>")
                            Else
                                TempString.Append("<td><input id='DigikeyOrder' type='button' value='Order Now'  runat='server'/></td>")
                            End If
                            TempString.Append("</tr>")
                        End If
                    ElseIf theDistiName <> "Arrow" And theDistiName <> "Digikey" Then
                        TempString.Append("<tr>")
                        TempString.Append("<td>" & theDistiName & "</td>")
                        TempString.Append("<td>" & theQuantity & "</td>")
                        TempString.Append("<td><input  type='button' value='Order Now' runat='server'/></td>")
                        TempString.Append("</tr>")
                    End If
                End If
            Next
            TempString.Append("</table>")
            str = TempString.ToString
            node4.Text = str.ToString
            node4.Value = ""
            e.Node.ChildNodes.Add(node4)
        End If
    End Sub
    Sub Node_Collapse(ByVal sender As Object, ByVal e As TreeNodeEventArgs)
        ' Response.Write("You collapsed the " & e.Node.Text & " node.")
    End Sub
End Class

 

 

3. 页面效果如下图所示:

转载于:https://www.cnblogs.com/nancyzhang/p/3706301.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值