0

我有一个动态创建联系人表的页面,如果联系人收到电子邮件,我还会创建一个带有点击事件的图像按钮。我在页面的其余部分有一个类似的功能,效果很好。我以前用过这个没有任何问题:

protected void CreateContactsList(IQueryable<AA_BranschFinder.Login.vyWebKontaktpersoner> lContacts) // Creates a table in the aspx from an IQueryable List 
        {
            if (1 == 1)
            {
                htmlTblContactsContent.Rows.Clear();

                foreach (var p in lContacts)
                {
                    HtmlTableRow tr = new HtmlTableRow();
                    HtmlTableCell tdName = new HtmlTableCell();
                    HtmlTableCell tdCompanyName = new HtmlTableCell();
                    HtmlTableCell tdEmailAdress = new HtmlTableCell();
                    tdName.InnerHtml = p.strFnamn + " " + p.strEnamn;
                    tdCompanyName.InnerHtml = p.strNamn;

                    //Displays an image if the contacts has an email
                    if (p.strEpost != null)
                    {
                        ImageButton imgEmail = new ImageButton();
                        imgEmail.CommandArgument = p.intKundID.ToString();
                        imgEmail.ImageUrl = "images/symbol_letter.gif";
                        imgEmail.CssClass = "letter";
                        imgEmail.Click +=new ImageClickEventHandler(imgEmail_Click);
                        tdEmailAdress.Controls.Add(imgEmail);
                    }
                    tr.Cells.Add(tdCompanyName);
                    tr.Cells.Add(tdEmailAdress);
                    tr.Cells.Add(tdName);
                    htmlTblContactsContent.Rows.Add(tr);
                }
            }

        }

        void imgEmail_Click(object sender, ImageClickEventArgs e)
        {

断点在这里 throw new NotImplementedException(); }

该页面位于 java 弹出窗口中。但是我有类似事件创建的分页号码,效果很好。但它们是链接按钮。

4

4 回答 4

0

您必须在每次回发时创建动态控件。还要检查 imgEmail_Click 事件处理程序中的代码;如果您使用 .NET IDE 的 Alt + Shift + F10 方法创建了事件处理程序方法,那么您可能没有删除此行 -

throw new Exception("The method or operation is not implemented.");
于 2009-05-25T08:51:09.773 回答
0

你在哪里调用你的 Create 方法?您需要在其他事件处理程序运行之前执行此操作,最好是在 Page.Init 中。否则,回传到页面的数据被指示为一个尚不存在的控件触发的事件。

我还会确保你给你的 ImageButton 一个 ID。这将使调试变得容易得多。

imgEmail.ID = String.Format("EmailImageButton_{0}", p.intKundID);

另一种解决方案是查看 Request 对象中的 __eventtarget 和 __eventargument 参数,并查看在那里单击了哪个按钮。

于 2009-05-25T08:09:52.743 回答
0

确保在您的回发中添加了事件处理程序。仅在初始页面加载时添加它时,将不会处理该事件!(刚刚遇到并自己解决了这个问题。)

于 2009-10-22T14:37:37.647 回答
0

如果我没有弄错 imagebutton 是一种提交类型的按钮,而 linkbutton 是带有 javascript 的 a-tag。也许改变你的图像按钮点击(即usesubmitbehaviour设置为false)会解决你的问题。

于 2009-05-25T10:47:16.733 回答