2013-01-22 61 views
0

當我使用asp.net控件(如輸入)時,我在標記中指定了一個ID;然而,當我部署解決方案時,它的前綴是一些自動生成的ASP.net標識符,並在最後附加了我的原始ID。我可以在asp中控制我的ID和名稱標籤嗎?網絡4.0?

我不想在其他SO問題中使用服務器端標記替代方法來給我的jQuery一個固定ID來鎖定,因爲它阻止使用外部JS文件。 4.0會讓你更多地控制你的ID嗎?

+0

我不明白你的問題。什麼阻止了你在asp.Net中修復ID。它始終是可能的(從第一版開始)。它甚至是ASP.Net內部行爲的一部分。 –

+0

我誤解了你的問題。你不想使用服務器端標籤。那麼這是一個與Html/jQuery相關的問題嗎?並且,如果你不說不起作用,你打電話給一個bug –

+0

在以前的asp版本中。淨,你的ID是爲你生成的。 – sean

回答

3

是的,只需將ClientIDMode="Static"添加到您的控件。

另外,這始終是可能的,可以輸出控件的HTML ID直接進入你的javascript:

$('#<%= textBox1.ClientID %>').hide(); 

ClientIDMode參考:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

+0

第三種選擇是使用一些虛擬css類來「標記」控件。例如,你可以像這樣編寫一個文本框:''。然後,您可以使用jQuery中的css類來選擇文本框:'$(「。firstnamebox」)。val(「some value」)'。這樣可以避免調整ID或使用某種內聯代碼。這個小故障是因爲與ID選擇器相比性能下降,你會失去一些毫秒(可能不是問題) –

+0

謝謝Sean,你的答案的第一部分正是我所期待的。 – sean

1

在.NET 4+中,您可以在任何控件上使用ClientIDMode來指定如何生成ID。

+0

該op說他做**不**需要使用服務器端標籤。所以你的答案不適用。 (如果這仍然是OP想要的,我不會感到驚訝)。 –

0

從4.0開始,ASP.Net在所有控件上都有一個ClientIDMode,它允許您完全控制您的ID。

相關問題