2009-04-14 93 views
0

我有一個列表視圖有幾個不同的控件。我需要將特定的查詢字段綁定到控件的某些部分。該表包含一個friendid和一個名字。我想將friendid放在URL的末尾。我想把名字放在標籤的文字中。查詢中將返回多個朋友。該列表視圖應該顯示在一個單獨的行中。這是我的,這顯然是不正確的。Asp.Net綁定特定字段的SQL查詢到列表視圖

<asp:ListView ID="lvFriends" runat="server"> 
    <LayoutTemplate> 
    <ul ID="itemPlaceholderContainer" runat="server" style=""> 
     <li ID="itemPlaceholder" runat="server" /> 
    </ul> 
</LayoutTemplate> 
    <ItemTemplate> 
     <li> 
      <div style="float:left;"> 
       <a id="A1" href='<%# ResolveUrl(String.Format("~/UserPages/FriendsPages/FriendsProfile.aspx?friend={0}", Container.DataItem)) %>' runat="server"><asp:Image ID="ImageButton1" ImageUrl='<%# ResolveUrl(String.Format("~/UserPages/FriendsPages/FriendsThumbImage.aspx?friend={0}", Container.DataItem)) %>' runat="server" /></a> 
     </div> 

      <div style="margin-left:300px;"> 
     <ul> 
      <li><asp:Label ID="FirstNameLabel" runat="server" Text='<%# Eval("FriendFN") %>' /></li> 
     </ul> 
    </div> 
     </li> 
    <div style="clear:both;"></div> 
    </ItemTemplate> 
<ItemSeparatorTemplate><br /></ItemSeparatorTemplate> 
</asp:ListView> 

後面的代碼:

string strCon = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["SocialSiteConnectionString"].ConnectionString; 
using (SqlConnection conn = new SqlConnection(strCon)) 
{ 
    using (SqlCommand cmd = conn.CreateCommand()) 
    { 
     conn.Open(); 
     cmd.CommandText = "SELECT * from [Friends] WHERE [UserId] = @UserId"; 
     cmd.Parameters.AddWithValue("@UserId", User.Identity.Name); 

     DataTable dtFriends = new DataTable(); 
     dtFriends.Columns.Add("FriendId"); 
     dtFriends.Columns.Add("FriendFN"); 

     SqlDataReader nwReader = cmd.ExecuteReader(); 
     while (nwReader.Read()) 
     { 
      string RdFriendId = nwReader["FriendId"].ToString().ToLower(); 
      string RdFriendFN = nwReader["FriendFirstName"].ToString().ToLower(); 

      dtFriends.Rows.Add(new object[] {RdFriendId, RdFriendFN}); 
     } 
     nwReader.Close(); 
     Session.Add("FriendsTable", dtFriends); 

     conn.Close(); 
     lvFriends.DataSource = dtFriends; 
     lvFriends.DataBind(); 
    } 
} 

回答

0

我會考慮使用一箇中繼器控制來代替。