C# ASP.Net用户控件单击事件只会导致回发,并且不会';t火灾事件

C# ASP.Net用户控件单击事件只会导致回发,并且不会';t火灾事件,c#,asp.net,onclick,C#,Asp.net,Onclick,当我附加我的UserControl(包含文字控件、imageButton控件、标签,单击带有imageButton控件的事件) 在主页面(default.aspx)上动态, Usercontrol的每个ImageButtonclick事件都不会触发, 只刷新了。 此外,我在ImageButtonclick事件逻辑的第一行上确定的断点 不起作用。 它似乎没有通过它的点击事件。 请帮帮我 下面是UserControl的后台代码 <%@ Control Language="C#" AutoEv

当我附加我的
UserControl
(包含文字控件、
imageButton
控件、标签,单击带有imageButton控件的事件) 在主页面(default.aspx)上动态, Usercontrol的每个
ImageButton
click事件都不会触发, 只刷新了。 此外,我在
ImageButton
click事件逻辑的第一行上确定的断点 不起作用。 它似乎没有通过它的点击事件。 请帮帮我

下面是UserControl的后台代码

 <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ContentHolder.ascx.cs" Inherits="TISSWeb.ContentHolder" %>
<asp:Panel ID="Panel2" runat="server" BorderColor="#3399FF" BorderStyle="Solid" 
    BorderWidth="1px" width="100%">
    <asp:ImageButton ID="ImageButton1" runat="server" Width="16px" 
        onclick="ImageButton1_Click" />
    <asp:ImageButton ID="ImageButton2" runat="server" onclick="ImageButton2_Click" Width="16px"/>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Label ID="Label1" runat="server" Text="Title"></asp:Label>
    &nbsp;
    <asp:ImageButton ID="ImageButton4" runat="server" ImageUrl="~/Images/linknew.gif" />
    &nbsp;<asp:Label ID="Label2" runat="server" Text="Date"></asp:Label>
    &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />  

    <asp:Panel ID="Panel3" runat="server" style="overflow:hidden;height:60px;">
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </asp:Panel>
</asp:Panel>

//below is C#(asp.net) Code


protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
//below if is where I settled the Break Point
    if (starred == "1")
    {
        starred = "0";
        ImageButton2.ImageUrl = "~/Images/star-off.png";


  String sql = "some sql";

        mysql.ExecuteNonQuery(sql);
    }
    else
    {
        starred = "1";
        ImageButton2.ImageUrl = "~/Images/star-on.png";
        String sql = "some sql";
        mysql.ExecuteNonQuery(sql);
    }
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebForm1" %>

<%@ Register src="ContentHolder.ascx" tagname="ContentHolder" tagprefix="ContentHolder" %>

<!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">
    <asp:Panel ID="Panel1" runat="server" BackColor="#006699" Height="35px"
        <asp:Label ID="Label1" runat="server" Text="Subscription"></asp:Label>
    </asp:Panel>  

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


//下面是C#(asp.net)代码 受保护的无效ImageButton2\u单击(对象发送者,ImageClickEventArgs e) { //下面是我解决断点的地方 如果(带星号=“1”) { 星号为“0”; ImageButton2.ImageUrl=“~/Images/star-off.png”; String sql=“some sql”; ExecuteNonQuery(sql); } 其他的 { 星号=“1”; ImageButton2.ImageUrl=“~/Images/star on.png”; String sql=“some sql”; ExecuteNonQuery(sql); } }
//下面是主页的后台代码

 <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ContentHolder.ascx.cs" Inherits="TISSWeb.ContentHolder" %>
<asp:Panel ID="Panel2" runat="server" BorderColor="#3399FF" BorderStyle="Solid" 
    BorderWidth="1px" width="100%">
    <asp:ImageButton ID="ImageButton1" runat="server" Width="16px" 
        onclick="ImageButton1_Click" />
    <asp:ImageButton ID="ImageButton2" runat="server" onclick="ImageButton2_Click" Width="16px"/>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Label ID="Label1" runat="server" Text="Title"></asp:Label>
    &nbsp;
    <asp:ImageButton ID="ImageButton4" runat="server" ImageUrl="~/Images/linknew.gif" />
    &nbsp;<asp:Label ID="Label2" runat="server" Text="Date"></asp:Label>
    &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />  

    <asp:Panel ID="Panel3" runat="server" style="overflow:hidden;height:60px;">
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </asp:Panel>
</asp:Panel>

//below is C#(asp.net) Code


protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
//below if is where I settled the Break Point
    if (starred == "1")
    {
        starred = "0";
        ImageButton2.ImageUrl = "~/Images/star-off.png";


  String sql = "some sql";

        mysql.ExecuteNonQuery(sql);
    }
    else
    {
        starred = "1";
        ImageButton2.ImageUrl = "~/Images/star-on.png";
        String sql = "some sql";
        mysql.ExecuteNonQuery(sql);
    }
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebForm1" %>

<%@ Register src="ContentHolder.ascx" tagname="ContentHolder" tagprefix="ContentHolder" %>

<!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">
    <asp:Panel ID="Panel1" runat="server" BackColor="#006699" Height="35px"
        <asp:Label ID="Label1" runat="server" Text="Subscription"></asp:Label>
    </asp:Panel>  

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


好的,我已经测试了你的代码(miner例外,你得到了) 它可以调试(我删除了除ImageButton2之外的所有图像),并且可以工作

所以我建议你也这么做,删除所有的图片并保留一个,我猜是吧 它将工作,然后添加另一个img和测试,我可以告诉你非常新的asp.net,因为你正在使用设计视图来塑造你的页面,这就是为什么你的代码中有很多不可破坏的空间 我真的建议你不要这样工作,因为你永远也学不到像这样正确地编写HTML代码,慢慢来,不要跳过阅读HTML CSS JS的步骤,以便更好地理解 当客户端技术优于服务器时,反之亦然,但这是我的50美分:)


任何方式都可以享受。

您省略了代码的相关部分。在哪里(重新)创建动态控件?你知道你必须在每次回发时重新创建它们,在
Page\u Init
Page\u Load
(最晚)中使用与以前相同的ID,不是吗?嗨,蒂姆,我添加了我的全部代码。你是否尝试过将代码从Page\u Load移到Page\u Init?谢谢你的考虑,丽兰。的确,我刚刚开始使用asp.net。我需要对Html进行大量的研究。我们都是从某个角度开始的,你问问题是很好的,这也是学习的一部分,我们非常乐意帮助你:)@jeffhwang