2012-10-29 20 views
1

我想在网站上添加动态图像按钮没有图像按钮的ID,所以我使用ASP标记生成与ParseControl方法的动态控制,它的工作,但事件并没有点击图像按钮时被触发事件不工作与ParseControl方法

Default.aspx.cs代码

 protected void Page_Load(object sender, EventArgs e) 
     { 
      string str = @"<asp:ImageButton runat=server ImageUrl=""~/close-icon (1).png"" OnClick=""click"" />"; 
      Control c = Page.ParseControl(str); 
      form1.Controls.Add(c); 
     } 


     protected void click(object sender, ImageClickEventArgs e) 
     { 
      Response.Write("Image Clicl"); 
     } 

Default.aspx的代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

    </div> 
    </form> 
</body> 
</html> 

请帮我在解决方案,使得代码来解决我的问题。

回答

1

我发现我的答案,答案是低于

Default.aspx.cs代码

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class dynamicimage : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     string str = @"<asp:ImageButton ID=""dynoimage"" ImageUrl=""~/images/about01.jpg"" runat=""server"" oncommand=""clickme"" commandname=""btn"" />"; 
     Control c = ParseControl(str); 
     form1.Controls.Add(c); 
     ((ImageButton)Page.FindControl("dynoimage")).Command += new CommandEventHandler(clickme); 
    } 

    protected void clickme(object sender,CommandEventArgs e) 
    { 
     Response.Write("Image clicked"); 
     Label1.Text = "Image clicked"; 
    } 
} 

,这里是Default.aspx页:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="dynamicimage.aspx.cs" Inherits="dynamicimage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

    </div> 
    <p> 
     <asp:Label ID="Label1" runat="server" Text="before click"></asp:Label> 
    </p> 
    </form> 
</body> 
</html>