2016-10-31 43 views
1

我一直在網上搜索幾個小時以找到解決方案。我使用MySqlDataReader從數據庫中獲取一些變量,我想創建一個foreach循環爲我獲取的每個ID創建一個HyperLink。在HyperLink中,我需要設置一個Image,具體取決於每個ID的等級,名稱爲Label,等級名稱爲Label如何創建一個包含每個MySQL提取變量內容的面板

這裏是代碼隱藏:

connString = ConfigurationManager.ConnectionStrings["ConnString"].ToString(); 
conn = new MySqlConnection(connString); 
queryStr = "SELECT * FROM db.table WHERE account_id=?id LIMIT 5"; 
cmd = new MySqlCommand(queryStr, conn); 
cmd.Parameters.AddWithValue("?id", IdKeeper.Value); 
conn.Open(); 
reader = cmd.ExecuteReader(); 
reader.Read(); 
foreach (string "id fetched" in PanelID) 
{ 
    //Stuck here!!! 
} 
reader.Close(); 
conn.Close(); 

回答

0

您可以在aspx頁面上使用Repeater

<asp:Repeater ID="Repeater1" runat="server"> 

    <HeaderTemplate> 
     <table border="1"> 
    </HeaderTemplate> 

    <ItemTemplate> 
     <tr> 
      <td> 
       <asp:Label ID="Label1" runat="server" Text='<%# Eval("dbColumnName") %>'></asp:Label>: </td> 
      <td> 
       <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("dbColumnName") %>'>Click Me</asp:HyperLink></td> 
     </tr> 
    </ItemTemplate> 

    <FooterTemplate></table></FooterTemplate> 

</asp:Repeater> 

然後將數據直接綁定到代碼中的Repeater而不需要foreach循環。

SqlDataReader reader = cmd.ExecuteReader() 
Repeater1.DataSource = reader; 
Repeater1.DataBind(); 
0

您好,非常感謝您的回覆。按照您的建議,我使用了Repeater,但數據不顯示。在我的瀏覽器的Inspect element選項中,沒有控制器使用Label1或HyperLink1的ID。我做了一些搜索上RepeatersMySql連接,但沒有運氣...這裏是我的最新代碼:

ASPX:

<asp:Panel runat="server" CssClass="main-content-content" ID="AllCharacters"> 
    <asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
      <td><%# DataBinder.Eval(Container.DataItem, "col1") %></td> 
      <td><%# DataBinder.Eval(Container.DataItem, "col2") %></td> 
      <td><%# DataBinder.Eval(Container.DataItem, "col3") %></td> 
     </ItemTemplate> 
    </asp:Repeater> 
</asp:Panel> 

C#:

queryStr = "SELECT * FROM db.table WHERE id=?id LIMIT 1"; 
cmd = new MySqlCommand(queryStr, conn); 
cmd.Parameters.AddWithValue("?id", IdKeeper.Value); 
conn.Open(); 
reader = cmd.ExecuteReader(); 
reader.Read(); 
Repeater1.DataSource = reader; 
Repeater1.DataBind(); 
reader.Close(); 

UPDATE: 後評論reader.Read();行的代碼工作,但只有第一行reader,而有2個相同的id。我試圖創建另一個<ItemTemplate>標籤與第一個相同但沒有運氣...

相關問題