用jQuery访问ASP.Net WebControl丑陋的ClientID方法

js脚本获取webform服务器控件的方法 asp.net webform中获取服务器控件,js脚本获取服务器控件需要使用ClientID web前台获取控件: <%=TextBox1.ClientID %>会打印出TextBox1的控件ID js脚本中获取webform控件:(实现当鼠标移到控件时,控件颜色变成红色) 代码如下: [removed] function myFuntion() { document.getElementById(‘<%=TextBox1.ClientID %>’).onmouseover=function(){ this.style.background=’r 立即下载

当我们制作Web页面时通常会在客户端使用JavaScript动态的更改一个控件的属性,举例:

<html>
<head>
<script type="text/javascript">
	$(document).ready(function () {
		$("#btnSubmitMessage").click(function () {
			$("#lblMessage").text($("#txtMessage").val());
		});
	});
</script>
</head>
<body>
<div id="wrap">
	<p>
		Write Message: <input id="txtMessage" type="text" value="some strings here..." /> <input id="btnSubmitMessage" type="button" value="Post Message" />
	</p>
	<p>
		Message: <label id="lblMessage">nothing entered.</label>
	</p>
</div>
</body>
</html>

通过以上代码,在我们点击btnSubmitMessage按钮后,lblMessage将显示“some strings here...”字样。

以上代码固然简单,然而当我们把这段代码转换成ASP.Net的代码就会出现一个非常让人头疼的问题——ASP.Net会自动生成一个很难看的ClientID,比如把以上的<input id="txtMessage" />转换成一个WebControl就变成了这样:

<asp:textbox runat="server" id="txtMessage" textmode="SingleLine">some strings here...</asp:textbox>

但是当这段代码输出到客户端时就变成了这样:

<input name="ctl00$txtMessage" id="ctl00_txtMessage" type="text" value="some strings here..." />

可以看到我们的TextBox控件的ID前边多了一些奇怪的字符。这是ASP.Net MasterPage的特性,它像洋葱一样把控件的ID一层一层的包了起来,而当前控件ID前的字符串就是其控件父级控件的ID名称。 这样的话我们就无法用前面的jQuery方法获取这个控件了。

不过jQuery却不会被此难倒,jQuery Selector有一个十分方便的方法可以调用到我们的控件,那就是ID Selector,如下:

$("[id$=lblMessage]").text( val );

通过以上的方法,无论这个控件被包了多少层我们都能够轻松的获取了。

使用 jQuery 属性选择器获取服务器控件 ClientID 客户端获取方法  var divContainer=document.getElementById('');  var divContainer=$("[id$=txtMessage]");  jQuery 属性选择器  $("div[id]")                   查找所有含有 id 属性的div元素  $("div[id='ajaxa']")      阅读详情

相关推荐

常用的Web控件

Web控件的种类非常丰富,并且每一个新的ASP.NET版本都在更新,这里分类介绍一些常用的Web控件的基本使用方式。 1.文本类型控件 Label ---Literal 1. Label(标签)  作用: 用于在页面上显示文本 。  语法: 在浏览器渲染为: ----- -----AssociatedControlID---- 2.Literal 不渲染任何标签,设置M

昂头天外 1049

ID vs UniqueID vs ClientID in webform

What is difference between UniqueID and ClientID in ASP.Net Controls ? Control.ClientID ClientID will be a unique ID string that is rendered to the client to identify the control in the output HT...

weixin_30426957的博客 289

jQuery访问ASP.Net WebControlClientID方法

aspxsome strings here...html说明ClientID 服务器控件生成为HTML代码时所对应的id,需要在客户端访问时候用的,一般情况下与服务器端的 ID 相同,如果是控件嵌套则一般每层用_隔开。客户端获取方法var divContainer=documen

wenle006的专栏 1674

ASP.NET webForm随记

笔记比较凌乱,因为工作中没用到webForm,以前在读书的时候经常用,简单记了下以前不知道的,算是温故而知新,跟大家分享…… 1. ViewStateDecoder2.0.exe 可查看ViewState的值,ViewState字符串是 经过base64编码的 2. 要想完全禁用ViewState要去掉form的runat=server,大部分服务器控件就用不了了 3. ASP.

单车男技术博客 968

使用JQuery获得ClientID

MasterPages的ClientID似乎一直是个诟病,尤其是在当下客户端脚本泛滥的今天。 使用MasterPages,Server Control会向ClientID加些东西,使得客户端JS在使用ID方面十分不便,一个普遍解决方案是添加 ClientIDMode="Static" 属性,当然每一个都要改事件麻烦事。 下面是Jquery的解决方案,主要利用jquery智能的selector。...

weixin_34010566的博客 161

asp.net的js中获取控件的ClientID

&lt;tr&gt; &lt;td width="110" height="35" align="center" style="font-weight: bolder"&gt; 出生年月 &lt;/td&gt; &lt;td style="font-size: 14px"&gt;&lt;asp:TextBox ID=

web开发自学 302

javascript ClientId用法

有模板页等,想直接通过服务器控件ID取值的话就用这种方式

gongth_12的专栏 3286

关于如何获取Clientid

Android studio 安装成功 获取Clientid之前需要把tabelt 的环境切换下 设备测试需要用命令切换下环境 因为一般情况下默认是线上环境,一般测试都是在 test环境下 所以需要进入cmd ,输入以下命令 adb shell setprop debug.lewindow TEST 然后打开Android studio在logcat中获取Clientid...

qq_39088387的博客 1万+

如何确定ASP.NET服务器控件的ClientID

如何确定ASP.NET服务器控件的ClientID 如果创建一个普通的HTML页面(不包含任何ASP.NET服务器控件),那么在创建HTML控件时,你会为它指定一个id属性,在呈现HTML页面时,此控件的id与你编写HTML页面时赋予控件id相同,不会发生变化。 但是如果创建一个ASP.NET Web页面,并且使用了某些ASP.NET 服务器控件(例如母版页,GridV

dreamliner的专栏 6685

the difference between ClientID and ID of web control

  Basically, The ID of web control should be used on serverprogramming, and the ClientID should be used on Client, pretty basic.if you want to use the ID of web control on Client, you will find it

daidaoke2001的专栏 987

ClientID 获取服务端控件,客户端id的方法

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication5.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">...

weixin_30329623的博客 622

asp.net 控件的 ID ,ClientID ,UniqueID 区别

对于每一个服务器控件System.Web.UI.Control 都具有 ID,UniqueID,ClientID 三个属性,那么这个三者到底有河关系,在客户端HTML中又是如何对应呈现的呢? ID:获取或设置分配给服务器控件的编程标识符。分配给控件的编程标识符。 (可写) 设置服务器控件上的此属性可提供对服务器控件的属性、事件和方法的编程访问。Web 开发人员可以通过在 ASP.NET 服务器...

weixin_33692284的博客 226

C# WebForm

什么是WebForm常用控件。 WebForm控件是如何解析成为HTML表单的。 WebForm优点。 WebForm缺点。 我使用WebForm常常烦的错误。

Scalzdp的专栏 8371

C++ 智能指针:auto_ptr / unique_ptr / shared_ptr / weak_ptr 原理与使用

智能指针拷贝核心原理适用场景auto_ptr转移所有权废弃不要用unique_ptr❌禁止拷贝 ✅支持 move独占资源独占所有权,默认首选shared_ptr✅支持拷贝引用计数需要多指针共享资源weak_ptr不持有资源不增加计数解决 shared_ptr 循环引用编码建议:优先用unique_ptr;确需共享再选shared_ptr;存在双向引用 / 环形结构,配合weak_ptr。

dajuc的博客 289
上一篇: Virgin date with SQL Server 2008
下一篇: Gaming and charity, the power of the gaming community
divding
博客等级 码龄19年 59粉丝 5原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值