2012-09-12 132 views
0

我綁定了單擊事件處理程序服務器端,並傳遞了一些其他參數。該綁定是作爲中繼器數據綁定事件的一部分完成的。當我點擊LinkBut​​ton時,事件處理程序從未被觸發。不知道爲什麼:LinkBut​​ton單擊事件未觸發

lnkUp.Click += (lnkSender, eventArgs) => { lnk_Click(lnkSender, eventArgs, int1, int2, string1); }; 

(我檢查lnkUp不爲空等)。

的事件處理程序:

void lnk_Click(object sender, EventArgs e, Int32 int1, Int32 int2, String string1) 
{ 
     //Do something fantastic 
} 

如果你想知道關於加價:

<asp:LinkButton ID="lnkUp" runat="server" Text="SomeText"/> 
+0

你的意思是鏈接按鈕是一箇中繼器裏面? –

+0

@ShadowWizard是的,這是否影響我必須綁定事件處理程序的方式? –

+1

是的 - 它是關於頁面生命週期的,並且我相信ItemDataBound在按鈕事件處理程序之後。 [這個答案](http://stackoverflow.com/a/12388171/447356)可能是正確的。 –

回答

3

你試試聯想單擊事件處理程序中ItemCreated事件,not in ItemDataBound。 (最佳做法)

並調整你的綁定只是在! isPostBack部分,爲了不擦除註冊的事件。

void Repeater_ItemCreated(Object Sender, RepeaterItemEventArgs e) 
{ 
    ..... 
} 

+0

非常感謝!欣賞你的答案。我仍然可以訪問這裏的數據項嗎?我需要它。 –

+0

我很高興爲您解答DeeMac,在lyfecycle階段itemCreated在ItemDataBound之前,您訪問ItemDataBound中的數據 –

+0

string1來自數據項的一部分,它在方法調用中用作參數 - 所以我不是確定在這種情況下我將如何使用ItemCreated,再次感謝。 –

相關問題