2012-05-02 42 views
1

我有一個在其中一列的按鈕的gridview。我使用後面的代碼向gridview添加列。我用這條線來連接我的單擊事件:「系統未定義」使用點擊處理程序時出現JavaScript錯誤?

cmd1.OnClientClick += new EventHandler(cmd1_Click);

現在我每次點擊按鈕時,它給了我在System.EventHandler<input type="submit" name="grvList$ctl02$ctl05" value="Add" onclick="System.EventHandler;" />

有沒有人遇到了這個問題,運行時錯誤和休息。

+2

您試圖使用服務器端代碼來處理客戶端事件。 'onclick'說運行這個javascript的東西,而不是c#的東西 – Snuffleupagus

+0

@scrappedcola大部分時間是的,但這是動態HTML由後面的代碼生成。 –

回答

4

當用戶user1090190在評論中寫道,onclick(從OnClientClick生成)作爲JavaScript在網絡瀏覽器中執行。

在這種情況下,+=正在調用ToString()對新創建的EventHandler對象,該對象會導致字符串"System.EventHandler"。 (該+=表達擴展到cmd1.OnClientClick = cmd1.OnClientClick + (new EventHandler(cmd1_Click));和隱式轉換是因爲OnClientClick的類型爲字符串)。

應該很可能(注意沒有Client):

cmd1.Click += new EventHandler(cmd1_Click) 

,或者更簡單(唐「T問我爲什麼自動完成始終是‘包裝’):

cmd1.Click += cmd1_Click; 

確保這個處理器是建立每個回發,如適用。

快樂編碼。

+0

你是正確的,但沒有cmd1.OnClick它是有cmd1.Click似乎工作。 –

+1

@JoeTyman感謝您的更正,更新。我很失落,沒有「智能感知」:( – 2012-05-02 21:20:44

相關問題