2011-03-30 55 views
1

我在.net c#中很新,只是關於下面的代碼的一個問題。我已經寫了代碼,以顯示如下的界面上的文本框:ID如何在asp:TextBox中工作?

<asp:TextBox ID="sUnit" runat="server" MaxLength="12" Width="3em" /> 

但不知何故,我沒有使用jqueryto值分配到該文本框:

$('#sUnit').val('test'); 

令人驚訝的是,當我查看源代碼時,它顯示文本框的ID如下所示:

<input name="ctl00$cplh$sUnit" type="text" maxlength="12" id="ctl00_cplh_sUnit" style="width:3em;" /> 

有誰知道我如何獲得文本框的ID,以便我可以將值分配到文本框?

希望我的問題不是很愚蠢。

回答

4

如果您正在使用ASP.NET 4.0,設置ClientIDModestatic

對於舊版本,使用 $('#<%= sUnit.ClientID %>')

0

這是由於包含這些控件的UI元素由ASP.NET呈現的事實,那些實現INamingContainer的容器會生成應根據其範圍加前綴的前綴。

從MSDN線上面提到:

實現此 接口的任何控制在 其中所有子控制ID屬性 保證是一個 整個應用中是唯一的創建一個新的命名空間。由該接口提供的標記 允許 在 支持數據綁定的Web服務器控件內的動態生成的服務器控件實例 的唯一命名。爲了發現自己可能是使用的first selector控制,在那裏你控制都包含在一個普通div

一個建議。找到input類型元素的一個例子可能看起來像:

$('#MyDiv').first('input[type="text"]') 
+0

爲什麼'first',而不是如'find'? – configurator 2011-03-31 01:39:00