我是.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以便我可以将值分配到文本框中?
希望我的问题不是很愚蠢。
答案 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"]')