当我附加我的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"/>
<asp:Label ID="Label1" runat="server" Text="Title"></asp:Label>
<asp:ImageButton ID="ImageButton4" runat="server" ImageUrl="~/Images/linknew.gif" />
<asp:Label ID="Label2" runat="server" Text="Date"></asp:Label>
<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);
}
}
答案 0 :(得分:0)
好,所以我已经测试了你的代码(你可以获得miner异常) 它可以工作(我删除了除ImageButton2以外的所有图像)进行调试,它可以工作。
所以我建议你同样删除所有图像并保持一个,测试我的猜测 它会工作,然后添加一个img和测试,我可以告诉你asp.net的新手,因为你正在使用设计视图来塑造你的页面,这就是为什么你在你的网站中获得了很多无法破坏的空间码 我真的建议不要这样工作,因为你永远不会像这样学习编码HTML,花点时间不要跳过关于HTML CSS JS的步骤阅读以更好地理解 当客户端技术比服务器更好,反之亦然,但那是我的50美分:)
任何方式享受。