2013-04-18 4 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(); 

는 allready 내 중계기에 바인더 제본 된, 그래서 난 아주 잃었어요으로 내 독자 작동 실 거예요. 여러분 중 일부는이 문제에 대한 또 다른 해결책이 있기를 바랍니다.

+2

세트를 –

+0

덕분에 많은 미트와 Shafqat 모두. 당신은 확실히 내 문제를 해결했습니다 =) – GentlemenFinn

답변

2

ItemDataBound 이벤트 Repeater 컨트롤의 항목이 데이터 바인딩되어 있지만 페이지에 렌더링되기 전에 발생합니다. 중계기하여 ItemDataBound 이벤트에

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

관련 문제