1

クエリをリピーターにバインドした後、データベースのデータを使用したいと考えています。しかし、どうすればこれを行うことができるのかわかりません。これが私のコードです:

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();

リーダーはすでにリピーターにバインドされているため、機能しません。そのため、かなり迷っています。この問題に対する別の解決策があることを願っています。

4

1 に答える 1

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;
        }
      }
   }    
于 2013-04-18T07:54:47.313 に答える