Javascript 使用jquery访问Asp.net控件(所有选项)
如何使用jquery访问asp.net控件Javascript 使用jquery访问Asp.net控件(所有选项),javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,如何使用jquery访问asp.net控件 $(“#myTextBox”)不起作用。-推荐使用,看起来有点难看,但很有效 我在这里看到了一些问题,担心这些选择器的性能。这是最好的办法吗?没有 但是,大多数情况下,您甚至不会注意到性能受到的影响,当然,除非您的DOM树很大 选项3: <%@ Page Title="" Language="C#" MasterPageFile="~/Members/Site.Master" AutoEventWireup="true" CodeBehind=
$(“#myTextBox”)
不起作用。-推荐使用,看起来有点难看,但很有效
我在这里看到了一些问题,担心这些选择器的性能。这是最好的办法吗?没有
但是,大多数情况下,您甚至不会注意到性能受到的影响,当然,除非您的DOM树很大
选项3:
<%@ Page Title="" Language="C#" MasterPageFile="~/Members/Site.Master" AutoEventWireup="true" CodeBehind="Calculator.aspx.cs"
Inherits="store.Members.Calculator"
ClientIDMode="Static"
%>
强烈建议使用CssClass
。因为使用类的选择器是干净和简单的
如果您想知道,.net控件的CssClass
与传统html控件的class
相同
<asp:TextBox runat="server" ID="myTextBox" CssClass="myclass" /> //add CssClass
$('.myclass') //selector
注:
根据我的经验,我见过丑陋的选择器,如$(“#ctl00_Main_myTextBox”)
。这是直接复制粘贴从页面呈现的ID并在脚本中使用它的结果。听着,这会有用的。但是想想如果控制ID或主ID发生变化会发生什么。显然,您必须重新访问这些ID并再次更改它们。除此之外,请使用上面的选项之一并进行讨论。除了答案,您还可以使用名称属性,当IIS在HTML中呈现名称属性时,指定的名称属性值应与ID值相同:
示例
<asp:TextBox ID="txtSalesInvoiceDate" runat="server" />
var invDate = $("input[name=txtSalesInvoiceDate]");
var invDate=$(“输入[name=txtSalesInvoiceDate]”);
除了@krishna给出的答案外,您还可以使用ASP.NET 4.0中的ClientIDMode=“Static”
在页面级和网站级控制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>
...
在过去几天的问题回顾中,我看到了许多类似的问题。有足够的信息,但我决定写一个全面的清单在这里。希望这有帮助。简单的问题:如果在usercontrol中的控件中执行此操作,并且在页面上添加两次此usercontrol,选项4会发生什么情况。是否在运行时进行了某种验证,或者只是在生成的HTML中导致id重复?@Bartdude-它会在生成的HTML中导致重复ClientIDMode
只保留现有ID,因此在区分单击哪个ID时必须小心。在这种情况下,使用类和/或数据属性选择器可能是一个不错的选择。谢谢!正是我所想的。我想你不可能拥有全部:安全性和灵活性。根据JQuery文档,为了语法正确,实际的ID应该在引号中$(“[id$='myTextBox']”)$(“[id*='myTextBox']”)
<%@ Page Title="" Language="C#" MasterPageFile="~/Members/Site.Master" AutoEventWireup="true" CodeBehind="Calculator.aspx.cs"
Inherits="store.Members.Calculator"
ClientIDMode="Static"
%>
<system.web>
<pages ClientIDMode="Static">
</pages>
...
</system.web>