2013-04-18 3 views
1

Я хочу использовать некоторые данные из базы данных после привязки моего запроса к ретранслятору. Но я не уверен, как я supposted сделать это. Вот мой код:Использование данных 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(); 

Мой читатель не будет работать, как это было Allready переплетены моему повторителя, так что я совсем потерялась. Надеюсь, у некоторых из вас есть другое решение этой проблемы.

+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

Смежные вопросы