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. 页面效果如下图所示: