ID如何在asp:TextBox中工作?

时间:2011-03-30 22:48:46

标签: c# .net

我是.net c#中的新手,这里只是关于以下代码的问题。我已经编写了一个代码来在屏幕上显示一个文本框,如下所示:

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

但不知何故,我没有使用jquery将值分配到此文本框中:

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

令我惊讶的是,当我查看源代码时,它显示了文本框的ID如下所示:

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

有谁知道如何获取文本框ID以便我可以将值分配到文本框中?

希望我的问题不是很愚蠢。

2 个答案:

答案 0 :(得分:4)

如果您使用的是ASP.NET 4.0,请将ClientIDMode设置为static

对于旧版本,请使用 $('#<%= sUnit.ClientID %>')

答案 1 :(得分:0)

这是因为ASP.NET正在呈现包含这些控件的UI元素,那些实现INamingContainer的容器会生成应根据其范围加前缀的前缀。

从上面提到的MSDN线路:

  

任何实现此目的的控件   interface在中创建一个新的命名空间   其中所有子控件的ID属性   保证在一个内部是独一无二的   整个申请。标记   由此接口提供允许   动态的唯一命名   生成服务器控件实例   在Web服务器中控制它   支持数据绑定。

为了找到控件本身的一个建议可能是使用first selector,您控制的地方包含在常规div中。查找input类型元素的示例可能类似于:

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