ASP.Net UserControl单击事件仅导致回发,并且不会触发事件

时间:2014-08-25 09:17:30

标签: c# asp.net onclick

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

以下是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)主页代码

protected void Page_Load(object sender, EventArgs e)
    {

    DataTable SrcData = mysql.executeSelect("Some SQL");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            ContentHolder uc = (ContentHolder)LoadControl("ContentHolder.ascx");            
            form1.Controls.Add(uc);
        }
}

1 个答案:

答案 0 :(得分:0)

好,所以我已经测试了你的代码(你可以获得miner异常) 它可以工作(我删除了除ImageButton2以外的所有图像)进行调试,它可以工作。

所以我建议你同样删除所有图像并保持一个,测试我的猜测 它会工作,然后添加一个img和测试,我可以告诉你asp.net的新手,因为你正在使用设计视图来塑造你的页面,这就是为什么你在你的网站中获得了很多无法破坏的空间码 我真的建议不要这样工作,因为你永远不会像这样学习编码HTML,花点时间不要跳过关于HTML CSS JS的步骤阅读以更好地理解 当客户端技术比服务器更好,反之亦然,但那是我的50美分:)

任何方式享受。