簡體   English   中英

ASP.Net UserControl單擊事件僅導致回發,而不觸發事件

[英]ASP.Net UserControl click event causes only postback, and doesn't fire event

當我動態地在主頁(default.aspx)上附加My UserControl (包含Literal控件, imageButton控件,標簽,帶有imageButton控件的click事件)時,Usercontrol的每個ImageButton click事件不會觸發,僅刷新。 此外,我在ImageButton的click事件邏輯的第一行確定的Breaking Point不起作用。 似乎沒有通過點擊事件。 請幫我

下面是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);
        }
}

好的,所以我已經測試了您的代碼(除了礦工例外,您到達那里),它可以調試(我刪除了除ImageButton2之外的所有圖像),並且可以工作。

所以我建議您做同樣的操作,刪除所有圖像並保留一個,測試我的猜測是否可以,然后添加另一個img並進行測試,因為您使用的是設計視圖,所以我可以告訴您asp.net的新知識。來塑造您的頁面,這就是為什么您在代碼中留出很多空缺的原因,我真的建議您不要像這樣工作,因為您將永遠不會學會像這樣正確地編寫HTML,請花時間不要跳過有關HTML CSS JS的閱讀步驟以便更好地了解客戶端技術比服務器更好,反之亦然,但這就是我的50美分:)

任何方式享受。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM