使用 jquery 访问 Asp.net 控件(所有选项)
Accessing Asp.net controls using jquery (all options)
如何使用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
- 推荐但meh..不是那么多。如果可以的话,我会尽量避免写ClientID
。主要原因是,您只能在.aspx
页面中使用它,而不能在外部.js
文件中使用它。
选项 2:
$('[id$=myTextBox]') // id which ends with the text 'myTextBox'
$('[id*=myTextBox]') // id which contains the text 'myTextBox'
使用属性选择器 - 也推荐,看起来有点丑,但有效。
我在这里看到了几个问题,担心这些选择器的性能。这是最好的方法吗?不。
但是,大多数时候你甚至不会注意到性能的影响,当然,除非你的 DOM 树很大。
选项 3:
使用CssClass
- 强烈推荐。因为使用类的选择器干净且简单。
如果您想知道,.net 控件的CssClass
与传统 html 控件的class
相同。
<asp:TextBox runat="server" ID="myTextBox" CssClass="myclass" /> //add CssClass
$('.myclass') //selector
选项4:
在控件上使用 .NET Framework 4.0 中引入的 ClientIDMode="Static"
,以便其 ID 保持不变。 - 也推荐。
<asp:TextBox runat="server" ID="myTextBox" ClientIDMode="Static" /> //add ClientIDMode
$('#myTextBox') //use the normal ID selector
注意:根据我的经验,我见过像$('#ctl00_Main_myTextBox')
这样丑陋的选择器。这是直接从页面复制粘贴 ID 并在脚本中使用它的结果。看,这会起作用。但是,请考虑一下如果控件 ID 或主 ID 发生更改会发生什么情况。显然,您将不得不重新访问这些 ID 并再次更改它们。取而代之的是,请使用上述选项之一并被覆盖。
除了 krishna 的答案之外,您还可以使用 name 属性代替,当它由 IIS 以 HTML 呈现时,分配的名称属性值应与 ID 值相同:
例
<asp:TextBox ID="txtSalesInvoiceDate" runat="server" />
var invDate = $("input[name=txtSalesInvoiceDate]");
除了按@krishna回答之外,您还可以使用 ClientIDMode="Static"
In ASP.NET 4.0 在页面级别和网站级别控制 Web 控件客户端 ID 的生成。
在页面级别,如下所示:
<%@ Page Title="" Language="C#" MasterPageFile="~/Members/Site.Master" AutoEventWireup="true" CodeBehind="Calculator.aspx.cs"
Inherits="store.Members.Calculator"
ClientIDMode="Static"
%>
在网站级别
您可以使用 web.config 设置,如下所示
<system.web>
<pages ClientIDMode="Static">
</pages>
...
</system.web>
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 在带有 bootbox 的自定义对话框中添加选项以选择表单控件.js在 ASP.NET MVC 中
- 控件.使用传单指令覆盖层的层折叠选项
- Meteor AutoForm:如何基于其他控件更新选择选项
- 循环遍历JQueryUI选项卡控件中的每个选项卡,并构建一个对象数组
- 使用 jquery 访问 Asp.net 控件(所有选项)
- 角度选项卡控件更改url
- 当表单控件选项具有多个参数时,如何在组合框中填充所选项目
- 选项卡控件 对话框控件
- 多个 YouTube 播放器,位于选项卡式角度 UI 控件中.想要添加折叠
- 使用 Jquery 比较每个数组索引的输入文本数组控件和选择选项数组控件的值
- 如何将Ajax选项卡控件内部的文本框读取为javascript函数
- 角度树控件在提供选项属性时不呈现数据
- 能.控件.默认值和选项合并
- 在选择下拉列表中的值时向某些控件添加了默认选项
- 如何使用javascript将大量的选择选项移动到另一个选择控件
- web2py控件窗体,选择选项时显示字段
- 为AJAX选项卡控件设置活动选项卡
- html javascript选择选项控件与大量的元素(如10K)