2013-04-18 75 views
1

我希望在將查詢綁定到中繼器之後使用數據庫中的一些數據。但我不確定我是如何執行此操作的。這裏是我的代碼:綁定到中繼器後使用Sql數據

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()); 
SqlCommand cmd = new SqlCommand("SELECT * FROM kontakt", conn); 

conn.Open(); 
SqlDataReader reader = cmd.ExecuteReader(); 
Repeater_Beskeder.DataSource = reader; 
Repeater_Beskeder.DataBind(); 

    foreach (RepeaterItem row in Repeater_Beskeder.Items) 
    { 
     if (reader.Read()) 
     { 
      Panel Vis_Panel = (Panel)row.FindControl("Panel_Vis_Besked"); 
      if (Request.QueryString["id"].ToString() == reader["id"]) 
      { 
       Vis_Panel.Visible = true; 
      } 
     } 
    } 
conn.Close(); 

我的閱讀器不會工作,因爲它已經被綁定到我的轉發器,所以我很迷路。 我希望你們中的一些人有這個問題的另一種解決方案。

+2

將它設置在中繼器的ItemDataBound事件中 –

+0

非常感謝Amit和Shafqat。 你當然解決了我的問題=) – GentlemenFinn

回答

2

ItemDataBound事件在Repeater控件中的項目是數據綁定的但在頁面上呈現之前發生的。

void Repeater_Beskeder_ItemDataBound(Object Sender, RepeaterItemEventArgs e) { 

     // This event is raised for the header, the footer, separators, and items. 

     // Execute the following logic for Items and Alternating Items. 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { 
     Panel Vis_Panel = (Panel)row.FindControl("Panel_Vis_Besked"); 
     if (Request.QueryString["id"].ToString() == reader["id"]) 
     { 
      Vis_Panel.Visible = true; 
     } 
     } 
    }  
+0

非常感謝Amit和Shafqat。 你當然解決了我的問題=) – GentlemenFinn