Событие динамического нажатия не запускается в C # - PullRequest
0 голосов
/ 22 февраля 2012

Я работаю над заполнением PlaceHolder на странице данными из SQLDataReader.Я могу получить все данные из базы данных, но когда я пытаюсь добавить событие щелчка к кнопке динамической ссылки, даже не сработает.Я попытался поместить код в функции PreInit и Init, но не укус.Большое спасибо!

Вот мой код:

protected void Page_Load(object sender, EventArgs e)
{
   InsertRotatorIntoSQL selectGroups = new InsertRotatorIntoSQL();
   SqlConnection conn = selectGroups.Connection();
   string groupCmd = "SELECT g.GroupID, g.GroupName, g.GroupDescription, i.ImgName FROM dbo.ImageGalleryGroups g INNER JOIN dbo.ImageGalleryImages i on i.GroupID=g.GroupID WHERE i.IsThumbnail=1";

   SqlCommand getGroupCmd = new SqlCommand(groupCmd, conn);
   conn.Open();

   SqlDataReader sdr = getGroupCmd.ExecuteReader();

   while (sdr.Read())
   {
        string id = sdr.GetValue(0).ToString();
        string name = sdr.GetValue(1).ToString();
        string desc = sdr.GetValue(2).ToString();
        string img = sdr.GetValue(3).ToString();
        Literal containerDiv = new Literal();
        containerDiv.Text = "<div style='float:left; margin:0 5px;'>";
        PlaceHolder1.Controls.Add(containerDiv);

        Literal t = new Literal();
        t.Text = "<h3>" + name + "</h3>";
        PlaceHolder1.Controls.Add(t);

        Image gThumb = new Image();
        gThumb.Width = 150;
        //todo implement css  border:1px solid #eee; padding:2px;
        gThumb.ImageUrl = "/App_Templates/Skin_1/ImageGalleryGroups/" + name + "/" + img;
        PlaceHolder1.Controls.Add(gThumb);

        Literal br = new Literal();
        br.Text = "<br /><p> ";
        PlaceHolder1.Controls.Add(br);

        LinkButton del = new LinkButton();
        del.Click += new EventHandler(this.Delete_Group);
        del.Text = "Delete";
        del.CssClass = "delbtn";
        PlaceHolder1.Controls.Add(del);

        Literal d = new Literal();
        //create editgroup
        d.Text = " | <a href='ViewGroup.aspx?GroupID=" + id + "'>Edit</a></p>";
        PlaceHolder1.Controls.Add(d);

        Literal cdClose = new Literal();
        cdClose.Text = "</div>";
        PlaceHolder1.Controls.Add(cdClose);         
    }
}

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012

Ну, не совсем исправление, но я обнаружил обходной путь: я изменил вызов LinkButton на простой Button, который сработал. Не уверен почему, но это путь вперед на данный момент. Спасибо за вашу помощь!

0 голосов
/ 22 февраля 2012

Я собираюсь выйти из строя и спросить, немного ли отличается код здесь от кода на вашем живом сервере? Проблема, которую вы описываете, обычно возникает, когда вы прикрепляете маркеры щелчка внутри секции !IsPostBack.

В этом случае, хотя обратная передача все еще вызывается при нажатии кнопки, когда элемент управления достигает конца Page_Load после обратной передачи, элемент управления не имеет связанного события щелчка и, следовательно, событие никогда не выполняется. Может ли это происходить здесь?

...