Program,Life,Society.....

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  131 随笔 :: 18 文章 :: 456 评论 :: 41万 阅读

Q:我用ASP.NET在黄页的制作中,常常在首页放着一级分类和二级分类,
这样的功能是怎样实现的,使用datalist嘛?我用各种Repeat,datalist,datagrid,
结果都没有实现!
好多的例子使用Asp实现的,很麻烦!难道ASP.NET不能实现吗?
样式像下面的连接(热门行业的部分)
http://yp.sina.net/

A:经过昨天晚上回家的思考,由于上午有其它工作,没有去做昨天的两个数据源的绑定和有自己的相应的超连接,终于在今天下午我做了出来,拿来与大家分享。
我用了两个datalist去连接不同的数据源,其中的一个datalist放在另一个之中。其实关键的是在于第二个数据源的连接,因为第二个数据源中的dataset的数据是根据第一个数据源的当前记录所选取的。
我在父datalist中设置数据源的时候使用了ItemDataBound来触发第二个datalist的绑定。这样就轻松的解决了
两个数据源的绑定。
还是来看看code吧!

Codebehind:

 Public Ds1, Ds2 As DataSet
    
Dim sOK As String = ""
    Dim CN As String = "workstation id=UPING;packet size=4096;integrated security=SSPI;data source=UPING;persist security info=False;initial catalog=Northwind"
    Public Count1, count2 As Integer
    
' Public I As Integer = 0
    'Public ss As String = "Tables[Table].DefaultView.[" & I & "]"

    
Private Sub Page_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
        
'Put user code to initialize the page here
        If Not IsPostBack Then
            DataAccess()
            DataList1.DataSource 
= Ds1
            DataList1.DataBind()
        
End If
    
End Sub


    
Public Function DataAccess() As String
        
Dim sz As String
        
Dim SQL2 As String = "SELECT * FORM [ORDERS]"
        Dim SQL1 As String = "select * from employees"
        Ds1 = SqlHelper.ExecuteDataset(CN, CommandType.Text, SQL1)
        Count1 
= Ds1.Tables(0).Rows.Count
    
End Function

    
Public Sub test()
   
    
End Sub


    
Private Sub DataList1_ItemDataBound(ByVal sender As ObjectByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
        
Dim ss As String
        
Dim DL As DataList
        
Dim hy As HyperLink
        hy 
= CType(e.Item.FindControl("HyperLink1"), HyperLink)
        ss 
= hy.Text
        
Dim SQL2 As String = "select * from orders where employeeID=" & ss

        Ds2 
= SqlHelper.ExecuteDataset(CN, CommandType.Text, SQL2)
        DL 
= CType(e.Item.FindControl("DataList2"), DataList)
        DL.DataSource 
= Ds2
        DL.DataBind()
        Ds2.Dispose()
    
End Sub

End Class 


HTML中的代码:

  <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="DataListTest.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD <FONT color=#000000>HTML</FONT> 4.0 Transitional//EN">
<HTML>
 
<HEAD>
  
<title>WebForm1</title>
  
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
  
<meta name="vs_defaultClientScript" content="JavaScript">
  
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 
</HEAD>
 
<body MS_POSITIONING="GridLayout">
  
<form id="Form1" method="post" runat="server">
   
<FONT face="宋体">
    
<asp:DataList id="DataList1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 40px" runat="server">
     
<ItemTemplate>
      
<P><%test()%>
       
<asp:HyperLink id=HyperLink1 runat="server" NavigateUrl='<%# DataBinder.Eval(Ds1,"Tables[Table].DefaultView.[5].LastName") %>' Text='<%# DataBinder.Eval(Container.dataItem,"employeeID" ) %>' Width="224px">
       
</asp:HyperLink></P>
      
<P>&nbsp;
       
<asp:DataList id="DataList2" runat="server" RepeatColumns="3">
        
<ItemTemplate>
         
<asp:HyperLink id="Hyperlink2" runat="server" Width="224px" Text='<%# DataBinder.Eval(Container.dataItem,"CustomerID" ) %>' NavigateUrl='<%# DataBinder.Eval(Container.dataItem,"CustomerID"%>'>
         
</asp:HyperLink></P>
      
<asp:DataList id="Datalist3" runat="server"></asp:DataList></P>
     
</ItemTemplate>
    
</asp:DataList></P> </ItemTemplate> </asp:DataList></FONT>
  
</form>
 
</body>
</HTML>
posted on   vuejs3  阅读(2212)  评论(1)    收藏  举报
(评论功能已被禁用)
点击右上角即可分享
微信分享提示