当前位置: 首页 > 面试题库 >

使用jquery访问Asp.net控件(所有选项)

孟璞
2023-03-14
问题内容

如何使用jQuery访问asp.net控件

<asp:TextBox runat="server" ID="myTextBox" />

$('#myTextBox') 不会工作。


问题答案:

<asp:TextBox runat="server" ID="myTextBox" />

上面的aspx代码在页面上呈现时变为

<input type="text" id="ctl00_Main_myTextBox" name="ctl00$Main$myTextBox"/>

这是因为.net控件所在的主控信息和控制信息被预先放置,这使我们编写选择器变得有些棘手。

您有几种选择。这绝不是全面的,但我会尝试一下。

选项1:

$('#<%= myTextBox.ClientID %>')

使用ClientID-推荐,但不是。ClientID如果可以的话,我会尽量避免写作。主要原因是,您只能在.aspx页面中使用它,而不能在外部.js文件中使用它。

选项2:

$('[id$=myTextBox]') // id which ends with the text 'myTextBox'

$('[id*=myTextBox]') // id which contains the text 'myTextBox'

使用属性选择器-也建议使用,看起来有点难看,但有效。

我在这里看到了一些问题,担心这些选择器的性能。 这是最好的方法吗? 没有。

但是,大多数情况下,您甚至都不会注意到性能下降,除非您的DOM树很大。

选项3:

使用CssClass-强烈建议。因为使用类的选择器是干净且简单的。

如果您想知道,CssClass.net控件与class传统html控件相同。

<asp:TextBox runat="server" ID="myTextBox" CssClass="myclass" /> //add CssClass

$('.myclass') //selector

选项4:

ClientIDMode="Static"在控件上使用.NET Framework 4.0中引入的Use ,以便其ID保持不变。-也推荐。

<asp:TextBox runat="server" ID="myTextBox" ClientIDMode="Static"  /> //add ClientIDMode

$('#myTextBox') //use the normal ID selector

注意:根据我的经验,我看到过类似的丑陋选择器$(‘#ctl00_Main_myTextBox’)。这是直接复制粘贴从页面呈现的ID并将其在脚本中使用的结果。看,这会起作用。但是请考虑一下,如果控件ID或主ID发生更改,将会发生什么情况。显然,您将不得不重新访问这些ID并再次进行更改。而是使用上面的选项之一进行覆盖。



 类似资料:
  • 本文向大家介绍ASP.NET中访问DataGrid中所有控件值的方法,包括了ASP.NET中访问DataGrid中所有控件值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ASP.NET中访问DataGrid中所有控件值的方法。分享给大家供大家参考,具体如下: 更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net文件操作技巧汇总》、《asp.net ajax技巧

  • 问题内容: 我有一个ASP.NET网站和一个自定义控件(我们称之为myControl)。我需要使用AJAX在此控件上调用方法。我将JavaScript(jQuery)的Ajax调用发布到C#WebMethod。这可以正常工作,但是我无法在静态WebMethod中进入myControl。任何想法如何解决这个问题? 简短版:从JS到C#WebMethod的AJAX调用有效-> 此处(在此方法中)我需要

  • 本文向大家介绍ASP.NET中 CheckBox复选框控件的使用,包括了ASP.NET中 CheckBox复选框控件的使用的使用技巧和注意事项,需要的朋友参考一下 我们可以使用两种类型的 ASP.NET 控件将复选框添加到 Web 窗体页上:单独的 CheckBox 控件或 CheckBoxList 控件。两种控件都为用户提供了一种输入布尔型数据(真或假、是或否)的方法。 这里我们单独使用Chec

  • 问题内容: 我有以下CSS: 我想使用jQuery更改顶部,左侧和底部边框的边框宽度。我使用什么选择器访问该元素?我尝试了以下方法,但似乎没有用。 问题答案: 您无法操作,因为从技术上讲,它不是DOM的一部分,因此任何JavaScript都无法访问它。但是您 可以 添加具有指定的新类的新类。 CSS: JS: 更新: 虽然不可能 _直接_修改内容,但是有一些方法可以使用JavaScript读取和/

  • 问题内容: 我需要有关jQuery选择器的帮助。假设我有一个标记,如下所示: 除了用户单击时,如何获取所有复选框? 问题答案: 一个更完整的示例适用于您的情况: 当被点击复选框,该复选框的状态进行检查,并在当前形式的所有复选框被设置为相同的状态。 请注意,您无需从选择中排除该复选框,因为该复选框的状态将与其他所有复选框相同。如果出于某些原因确实需要排除,则可以使用以下方法:

  • 我有这个HTML块来控制一个数量: 下面是jQuery代码: 我的问题是因为我在很多地方都有HTML,JS代码控制所有的块,而它应该控制选定的块。 请问我怎么换这个? 多谢了。