2016-10-31 7 views
1

저는이 문제에 대한 해결책을 찾기 위해 몇 시간 동안 웹을 검색해 왔습니다. MySqlDataReader을 사용하여 데이터베이스에서 일부 변수를 가져오고 foreach 루프를 만들어 가져온 모든 ID에 대해 HyperLink을 만듭니다. 이 HyperLink에서 모든 ID의 등급에 따라 Image을 설정해야합니다. 이름은 Label이고 학년 이름은 Label입니다.MySQL 가져온 변수마다 내용이있는 Panel을 어떻게 만들 수 있습니까?

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

당신은 당신의 영문 페이지에 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> 

그리고 나서 foreach 루프가 필요없이 코드 뒤에있는 Repeater에 데이터를 직접 바인딩하십시오.

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

안녕하세요. 감사합니다. 내가 제안한대로 Repeater을 사용했지만 데이터가 표시되지 않습니다. 내 브라우저의 Inspect element 옵션에는 Label1 또는 HyperLink1의 ID 컨트롤러가 없습니다.

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 : 후 나는 여기에 내 최신 코드입니다 ... 약 MySqlRepeaters에 연결하지만 행운을 검색 조금했다 reader.Read(); 코드는 코드가 작동하지만 첫 번째 행은 reader에 의해 페치되고 2는 동일한 id. 첫 번째와 같은 다른 <ItemTemplate> 태그를 만들려고했으나 행운이 없습니다.