2009-08-30 69 views
4

我需要獲取通過javascript在Formview inserttemplate中退出的文本框。使用javascript從Formview獲取對象

都返回空:

$get('txtTitle'); 
document.getElementById("txtTitle"); 

的問題在於:FormView的形式負載不渲染...

+0

你能告訴我你要完成什麼嗎? – 2009-08-31 05:33:48

回答

7

正如你所說,FormView控件內容服務器根據請求呈現,而不是頁面加載。也就是說,嘗試使用此代碼訪問formview中的控件。更改'FormView'的名稱以匹配您的唯一控件ID。

document.getElementById('<%=FormView.FindControl("txtTitle").ClientID%>'); 

如果需要的話,這裏是您可以使用的代碼,如果有生命週期的考慮註冊的JavaScript背後一些有用的事件。

The ItemCreated在FormView控件中創建所有行後引發事件。當控件第一次呈現時,或者當用戶導航到另一個記錄時,可能會發生這種情況。您可以使用此事件來提供執行自定義例程的事件處理方法,例如在發生此事件時添加或修改行的內容。

注意: ItemCreated事件發生在FormView控件綁定到數據之前。要修改綁定字段的值,請使用DataBound事件。

+0

當我運行應用程序時出現錯誤:Controls集合不能被修改,因爲控件包含代碼塊(即<% ... %>)。 – dani 2009-08-31 16:00:51

+0

嗯,這個錯誤只發生在我的JavaScript代碼在標題部分,如果我把它移動到正文它的工作。這是爲什麼? – dani 2009-08-31 16:05:37

+1

這裏的區別在於<%= %>表達式作爲生成的Parse Tree類的一部分嵌入到ASP.NET輸出中。如果您確實需要使用頁眉,則可以嘗試使用<%# %>表達式,因爲它是在運行時嵌入的。我沒有辦法爲你測試這個,但它可以工作。 – PortageMonkey 2009-08-31 17:23:19