簡體   English   中英

JavaScript getElementById在asp.net中返回NULL

[英]JavaScript getElementById returns NULL in asp.net

我為此一直掙扎了幾天,但是我沒有運氣。

問題是這樣的,我有一個detailsview,它是多視圖視圖的一部分,但是更重要的是,嵌套在我的detailsview中的是許多控件。 在這些控件中,我對其中的3個,兩個下拉列表和一個文本框感興趣。 在我的一個下拉列表中,我附加了一個javascript函數,當用戶從下拉列表中選擇一個值時,該函數可對onchange事件起作用

現在,在我的javascript函數上,當用戶使用“ this”作為傳遞參數選擇值時,我可以從下拉列表中獲取值。 但是,在其余的兩個控件,文本框和另一個下拉列表上,我無法獲取該控件。

我嘗試了以下代碼片段(這已在兩個控件上使用):

document.getElementById('<%= dv.FindControl("ddlTrust.ClientID") %>'); //this returns null

document.getElementById('<%= ddlTrust.ClientID %>'); //errors - says that control has not been declared

document.getElementById("ddlTrust"); //this returns null

有任何想法嗎?

dv.FindControl("ddlTrust.ClientID")將查找客戶端ID為ddlTrust.ClientID 這就是為什么您的第一條語句返回null的原因。 但是我認為這3種方法中,您最接近的。

我個人建議在與嵌套ASP.NET控件一起使用時使用jQuery,它可以使工作變得更加輕松。

但是,如果您希望使用原始javascript,則可以將javascript放在項目模板內(因此每個項目都會重復使用),然后執行以下操作:

document.getElementById(<%=ControlID %>);

然后在后面的代碼中將ControlID作為全局變量,並在dv綁定上設置此值:

ControlID = ((DropDownList)e.Item.FindControl("ddlTrust")).ClientID;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM