2010-10-11 32 views
0

這是工作聲明一個CLICK事件。 ASPX與代碼後面..這兩個不同?在.ASPX

<asp:ImageButton ID="lbHope6" runat="server" ImageUrl="~/Shared/Images/Site/ChartTypeProd.png" 
CssClass="chart" OnClick="lbHope6_Click" /> 

protected void lbHope6_Click(object sender, ImageClickEventArgs e) 
    { 
     EventArgs args = new EventArgs(); 

     if (Hope6 != null) 
      Hope6(this, args); 
    } 

但是當我做這樣它的行爲有所不同..任何想法?香港專業教育學院放棄希望

LinkButton lb = new LinkButton(); 
       lb.Text = s.Key.ToString(); 
       lb.Click += new EventHandler(lbHope6_Click); 
       sourceNameCell.Controls.Add(lb); 

    protected void lbHope6_Click(object sender, EventArgs e) 
    { 
     EventArgs args = new EventArgs(); 

     if (Hope6 != null) 
      Hope6(this, args); 
    } 
+2

您在創建「LinkBut​​ton」時會發生什麼事件? – 2010-10-11 22:10:12

+0

@Dustin Laine是對的 - '你在哪裏創建LinkBut​​ton(更重要的是連接事件)是至關重要的。在「老派」的ASP.NET(網站)中,諸如Page_Load和Event處理程序之類的東西在InitializeComponent方法中被自動連接(我相信被Page_Init調用)。 – RPM1984 2010-10-11 22:31:39

+0

如何在頁面init和頁面加載中創建該點擊事件會影響事物? ...現在這一切都發生在page_load中的函數..它必須發生在那裏我認爲,因爲這是在哪裏建立的HTML – punkouter 2010-10-12 00:13:52

回答

1

您要創建新的鏈接按鈕並指定每次頁面加載(包括回傳)的事件處理程序。 .Net不會理解您在回發時創建的LinkBut​​ton實際上是您在首次調用頁面時創建的LinkBut​​ton。你的第一個代碼示例很好。

+0

它很難解釋其餘的代碼aroudn它..但基本上是這樣現在我需要點擊鏈接按鈕兩次,才能完成它想要的操作。 – punkouter 2010-10-12 00:09:40

+0

那麼以編程方式創建事件的正確方法是什麼?我必須在頁面加載時執行此操作我認爲這是因爲鏈接是作爲HTML表格的一部分創建的,所以我的意思是它不是我可以在循環外部創建的東西,因爲循環內部是確定如果該鏈接/點擊事件被創建......那有意義?只有其他的解決方法我可以認爲它只是一個包含鏈接的獨立表格,我可以製作單獨的表格,所以我可以使用我的第一個技巧 – punkouter 2010-10-12 00:11:48

+0

這一切都取決於你的html是如何生成的。有可能你正在採取困難的方式。也許你的解決方案是定義一個DataBound ListView並使用你的第一個方法來處理點擊。觸發事件的訣竅是構建回發時的控件,就像在CreateChildControls或DataBinding事件中回發之前一樣。 – Jeroen 2010-10-12 01:20:50

相關問題