2012-03-07 80 views

回答

1

你能做到這一點使用jQuery通過寄存器選擇 '結尾爲'。

var element = $("input[id$=isChanged]")[0]; 

這裏假設你只在頁面上有一個輸入,其ID以'isChanged'結尾。我們使用結束的原因是因爲asp會讓你的控件的客戶端ID爲ct100 $ placeholder1 $ mypanel $ isChanged。您從父頁面上的Page_Load在你的用戶控件的標記,你可以設置

protected void Page_Load(object sender, EventArgs e) 
{ 
    UserControl1.ClientIdOfHiddenField = isChanged.ClientID; 
} 

然後

更健壯的解決辦法是對你的用戶控件的屬性(如「ClientIdOfHiddenField」)

var element = document.getElementById("<%= ClientIdOfHiddenField %>"); 
+0

你的第二種方法幫助我縮短了我的問題。非常感謝。 – Geeth 2012-03-07 08:12:54

1

像如下

isChanged.ClientID- is serverside property... so this will work for you 

document.getElementById("<%=isChanged.ClientID %>"); 
+0

控件位於調用用戶控件的父頁面中。所以在頁面加載時它顯示錯誤頁面控件不存在 – Geeth 2012-03-07 05:28:15

+0

假設我正確理解他的問題,隱藏字段在頁面上,而他試圖從用戶控件中訪問該項目。如果是這種情況,'isChanged'將不可見。 – SynXsiS 2012-03-07 05:29:43

+0

@Geetha - 他只需要在用戶控件中編寫腳本並公開該變量...因爲javascript變量是全局變量,易於在父頁面上可用...我跳你現在得到了 – 2012-03-07 05:35:33

0

如果您正在使用jQuery,你應該能夠使用

var hidden = $('input[id$="isChanged"]'); 

否則@Pranay Rana的答案應該有效。

相關問題