首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态单击事件未在C#中触发

动态单击事件未在C#中触发
EN

Stack Overflow用户
提问于 2012-02-22 08:01:08
回答 2查看 569关注 0票数 0

我正在使用来自SQLDataReader的数据填充页面中的PlaceHolder。我可以从数据库中获取所有数据,但当我尝试将单击事件添加到动态链接按钮时,甚至不会触发。我已经尝试过将代码放入PreInit和Init函数中,但一点也没有。非常感谢!

下面是我的代码:

代码语言:javascript
复制
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);         
    }
}
EN

回答 2

Stack Overflow用户

发布于 2012-02-22 13:55:42

我要问一下,这里的代码与您的实时服务器上的代码是否有一点不同?您所描述的问题通常是在!IsPostBack节内附加单击手柄时出现的。

在这种情况下,虽然在单击按钮时仍会导致回发,但当控件在回发后到达Page_Load的末尾时,控件将没有关联的click事件,因此永远不会执行该事件。有可能发生在这里吗?

票数 0
EN

Stack Overflow用户

发布于 2012-02-23 01:37:51

我发现了一个变通方法:我将LinkButton调用更改为一个普通的按钮,这是可行的。不知道为什么,但在这一点上这是一个前进的方向。谢谢你的帮忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9387239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档