asp.net+css+jQuery—它们是如何协同工作的?

asp.net+css+jQuery—它们是如何协同工作的?,asp.net,jquery,css,jquery-selectors,Asp.net,Jquery,Css,Jquery Selectors,我想了解如何使用jQuery处理asp.net和css。 当我在编写asp.net代码时,例如我在添加页面下拉列表时,当我在web浏览器中打开页面的源代码时,我在源代码中看不到它。我看到的不是dropdownlist,而是select标签。将asp.net标记更改为select的魔法何时完成? 此外,我看不到添加到asp.net标记中的CSS类名称。有一些不同的CSS类名。但当我在IE中打开开发工具时,我可以看到CSS类名,这与我的定义中的类名相同。 最后一件事。我应该在jQuery中使用什么标

我想了解如何使用jQuery处理asp.net和css。 当我在编写asp.net代码时,例如我在添加页面下拉列表时,当我在web浏览器中打开页面的源代码时,我在源代码中看不到它。我看到的不是dropdownlist,而是select标签。将asp.net标记更改为select的魔法何时完成? 此外,我看不到添加到asp.net标记中的CSS类名称。有一些不同的CSS类名。但当我在IE中打开开发工具时,我可以看到CSS类名,这与我的定义中的类名相同。 最后一件事。我应该在jQuery中使用什么标记名称来遍历asp.net中开发的页面。我应该使用在浏览器页面源代码中看到的标签,还是可以询问jQuery关于asp.net标签的信息?CSS类呢?为什么我在浏览器的页面源中看不到它们?可以在jQuery查询下使用我的CCS类名称吗?
请告诉我这三种技术是如何协同工作的?

ASP.NET:高级web开发框架。在.NET中创建web表单时,框架将与IIS处理程序一起工作,并创建有效的HTML,以便在回发期间与服务器端代码一起工作

JQUERY:这将允许您执行客户端脚本,如计算、验证,最显著的是AJAX等。这基本上只是一个简单易读的javascript版本的包装器

CSS:采用HTML并使其美观

如果您知道自己在做什么,这三种技术都能很好地协同工作


我不确定这是否是您想要的,但听起来您可能想投资一些初学者的文学作品。

神奇发生在asp.net页面生命周期的呈现事件中。Asp.net服务器控制所有呈现为标准html元素。最重要的区别在于,您可以在服务器端访问它们及其值。WebControl还有一个CssClass属性,当呈现该属性时,它将成为HTML元素的class属性

使用jQuery和CSS时,id可能有点棘手。这是因为根据控件层次结构,它们可能有一个clientID,例如ctl100\u containerID\u myControl,而不是myControl。要在jQuery中克服这一问题,当您引用控件时,可以通过其ClientID引用它,如下所示:

$('#<%=myControlID.ClientID%>')
这是服务器端,它将在呈现控件后写入控件的客户端ID

将asp.net标记更改为select的魔法何时完成

您想知道的大部分魔术都是由ASP.NET控件完成的,这些控件用于生成发送到浏览器的标记

当收到请求时,应用程序迭代每个控件,调用从控件类继承的方法,从而允许每个控件生成它们表示的标记

按照您的示例,DropDownList控件将生成一个标记。作为ListControl,它使用ListItem控件在中创建标记

另一个是GridView,它使用GridViewRow控件和各种HTML控件(如和的TableCell)生成一个标记,以创建其余的标记

我应该使用在浏览器页面源代码中看到的标签,还是可以询问jQuery关于asp.net标签的信息

不,jQuery/JavaScript不知道服务器端控件名称,只知道它们生成的标记。因此,与其搜索$'DropDownList',不如搜索$'select'

此外,我看不到添加到asp.net标记中的CSS类名称。有一些不同的CSS类名

CSS名称是指ID吗?很抱歉要问,但是CssClass属性的值不应该从服务器端更改为客户端,而应该从名称-CssClass更改为类

另一方面,ID的前缀确保其在整个页面中的唯一性,包括母版页的前缀和ContentPlaceHolder名称(如果使用)。出于这个原因,我不再尝试使用IDs将CSS应用于服务器端控件,而是使用类

现在,ID的结尾应该保持为您在服务器端提供的ID,因此您仍然可以使用以下命令在jQuery中找到元素:

否则,我会坚持使用类来查找您要查找的控件:

# ASP
<asp:DropDownList ID="AnyGivenDropDown" CssClass="anygiven" runat="server" />

# HTML (generated)
<select id="ctl00_PageContents_AnyGivenDropDown" class="anygiven"></select>

# JavaScript
$('select.anygiven');

# CSS
.anygiven { }

建议:学习如何将句子分成段落,这样更容易阅读。整个DropDownList神奇地变成了一个选择标记,这就是我坚持使用经典asp的原因。@Martha,这没有任何意义。@Martha:我建议尝试一下asp.NET MVC-你可能会喜欢缺少表单、POST、,etc..+1出色的工作展示了一路走来的每一步。我认为这将帮助他们更容易地遵循这些概念。
# ASP
<asp:DropDownList ID="AnyGivenDropDown" CssClass="anygiven" runat="server" />

# HTML (generated)
<select id="ctl00_PageContents_AnyGivenDropDown" class="anygiven"></select>

# JavaScript
$('select.anygiven');

# CSS
.anygiven { }