Javascript 获取asp.net 控件问题

想编写一个函数(JS)来获取asp.net中DataList模板里面的控件Label值注意:这里的控件都为服务器控件因为考虑到datalist里面的Label的id是变化... 想编写一个函数(JS) 来获取asp.net 中DataList模板里面的控件Label值 注意:这里的控件都为服务器控件
因为考虑到datalist里面的Label的id是变化的,能不能动态获取label的id进而获取它的值
展开
 我来答
znfsky
2010-08-28 · TA获得超过180个赞
知道答主
回答量:89
采纳率:0%
帮助的人:82.5万
展开全部
给label加class,用jQuery来获取,既能满足CSS的需要,也能满足JS取得元素的需要。因为当页面引用不同的masterPage,它的ID是会变的,而加name降低了代码的简洁性,所以加class最好。
如果不想用jQuery,这里有取class的方法:
var bpGet=new Object();
bpGet.getElementsByClassName=function
(targetClass,targetTag,targetParent){
var targetParent=targetParent||document;
var aTags=(targetTag=='*' && targetParent.all)?targetParent.all:targetParent.getElementsByTagName(targetTag);
targetClass=targetClass.replace(/\-/g,'\\-');
var oReg=new RegExp('(^|\\s)'+targetClass+'(\\s|$)');
var aMatchElements=new Array();
for(var i=0; i<aTags.length; i++){
var oElement=aTags[i];
if(oReg.test(oElement.className)){
aMatchElements.push(oElement);
}
}
return aMatchElements;
}
//用法:var aListSpan=bpGet.getElementsByClassName('classABC','*');
//第三个参数选填,一般情况下不用。
//此方法返回一个数组

____________________________________________________________________

回答你的追加问题:
理论上可以动态获取ID,只要你掌握规律,不怕麻烦就行。你要考虑几个问题:1.ID前缀,就像这样ctl00_ContentPlaceHolder1_infoList3_DataList1_ctl02_imgInfo(其实我只设置了ID为"imgInfo");2.服务器到底根据数据库条数生成了多少个Label出来,否则你就没法for循环(如果你想说遍历,那不如直接用jQuery);
3.最关键的问题,ID动态生成就是说ID在不同环境下的解析很可能会不一样,比如我曾遇到过,IE7下的ID是XXX$XXX$XXX,同样的代码在IE8里就变成了XXX_XXX_XXX,你怎么去保证任何状况下,程序会用相同的规律去生成ID?

建议你用class,把控制权掌握在自己手中,而不是服务器动态生成。
百度网友e27d6e6e3
2010-08-28 · TA获得超过605个赞
知道小有建树答主
回答量:361
采纳率:0%
帮助的人:0
展开全部
在客户端,服务端控件会被自动解析成客户端的HTML.
在页面里看看右键看源代码,可以看到datalist被转换成html,然后你用js(推荐使用jquery,很快很方便)获取这些html元素就可以了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海吧大帝
2010-08-28
知道答主
回答量:53
采纳率:0%
帮助的人:25.6万
展开全部
建议你用下JQuery,虽然ID是变化的,但是前部分应该都是一样的,如果
你想定位某一个,可以在后台绑定时间里多加上一个标记自定义属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chuxue1342
2010-08-28 · TA获得超过747个赞
知道小有建树答主
回答量:414
采纳率:0%
帮助的人:399万
展开全部
如果放在Datalist中,控件名称一般会变,如果你不考虑通用性的话,可以查看源文件,找到你想要获取的控件,查看ID,直接获取!如果你想通用的话,建议给里面的控件加一个name属性,通过name来查找吧~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式