2010-03-24 36 views
1

在dataGrid啓動它的ItemDataBound事件後有什麼辦法啓動JS函數嗎?DataGrid - 在ItemDataBound上啓動JS函數

我試着加入JS塊到的ItemDataBound功能,如:

protected void itemDataBound (e sender, arguments args) 
{ 
    ClientScript.RegisterStartupScript(typeof(string),"test","alert('testing');",true); 
} 

,但什麼也沒做。

我錯過了什麼嗎?

+0

的頁面上生成的腳本,當你在瀏覽器中查看HTML源代碼? – 2010-03-24 06:56:03

+0

我真的不能檢查,因爲網格是一個UpdatePanel(AJAX)內 – Faruz 2010-03-24 06:56:35

回答

1

找到一個變通使用UpdatePanelAnimationExtender和ScriptAction

2

看完你的問題後,你似乎有點混淆了...請原諒,如果我誤解了你已經知道這個東西。

我們可以理清您使用的術語嗎?我假設你的意思是說:

 
How can i [attach | insert] a piece of javascript into the page when the grid ItemDataBound event fires? 

如果這是你的意思,那麼跳到下面的段落。如果不是,並且您期望JavaScript立即執行,那麼它不能:您在服務器上,JavaScript在客戶端上運行。

隨着你的測試啓動腳本,它也當它被加載爲Ajax回調的部分將不會運行 - 你的頁面已經加載,你正在做的是更換其中的一部分。

當在ItemDataBound事件中注入腳本時,正常的事情是將一段腳本附加到HTML元素的事件 - 您可以將一段腳本注入到頁面中,但是會注入它對於每個數據綁定的項目(除非您首先測試其存在性),即使如此,除非您直接調用它或觸發它,否則它是無用的。

Here is a good example讓你開始,有一個負載更多的在那裏,你可以用快速谷歌發現。

+0

你正確地理解問題。感謝您的努力。看來我只能在項目中注入「onmouseover」/「onclick」事件。我試圖注入一個「onload」腳本。 – Faruz 2010-03-24 07:49:58

+0

IIRC,如果你開始的javascript ajax的回傳,那麼你必須指定AJAX請求完成時調用一個JavaScript回調函數的選擇 - 我會考慮利用這一點。 – slugster 2010-03-24 08:31:18