2012-12-07 45 views
1

我在服務器控件上創建了ID爲「ResultOutput」的服務器控件。這是一個文本框。之後,我將此控件添加到visual webpart。我部署到SharePoint站點。在呈現頁面後,如果我看到該文本框的ID,則ID已更改爲ct100_m_g_cb6c8826_a6e5_4169_a3ef_4bfc7dfb26c_ct100_ResultOutput。 要檢索我們可以在jquery中使用的服務器控件的ID,如獲取在呈現到頁面後動態更改的asp.net服務器控件ID

$('<%= ResultOutput.ClientID %>')

但在這種情況下,ID正在改變,所以jquery無法找到該ID。要找到是否在該修改的ID實際ID是否呈現我使用像$("[id*=ResultOutput]").length,它是給值爲1.所以最後我們發現該元素。現在我想分配一些文本到該文本框中。我無法找到這個ID的動態變化的解決方案。

如果我給$("[id*=ResultOutput]").id它給我不確定。在jquery中捕捉它的方法是什麼?我想在文本框控件中放置文本。

回答

0

jQuery工廠方法通常是返回集合/數組。

所以訪問它像下面

$("[id*=ResultOutput]")[0].id 

而且我不知道是你的ID選擇失蹤#符號給出了什麼。請包括並再試一次。

$('#<%= ResultOutput.ClientID %>'). 
+0

如果我使用'$( '#<%= ResultOutput.ClientID%>')'它不工作。因爲id是動態變化的。 – Searcher

+0

'<%= %>'表達式的目的恰恰是呈現動態變化的數據。所以不管什麼ID,只要ResultOutput沒有改變,這應該工作。 – Slavo

1

要獲得ID擁有jQuery的使用attr('id')$("[id*=ResultOutput]").attr('id')給你的編號。如果你想改變那個文本框控件中的文本,那麼你必須像下面一樣使用。

var myboxid = $("[id*=ResultOutput]").attr('id'); $('#'+myboxid).val("yourvalue");