首页 新闻 搜索 专区 学院

急急急!!!请教各位大虾:jquery 获取模板页控件值

0
悬赏园豆:60 [已解决问题] 解决于 2011-11-15 11:33

我需要在一个用户控件中获取套用了模板页的页面控件。应该怎样获取?

a.ascx,用户控件,b.master,模板页,c.aspx套用模板页b,

在a这个用户控件中获取c页面中的控件的值,但控件类型不固定。有可能是TextBox,Button,CheckBox,RidoButton.....要取这些控件的值。有这些控件的ID,但不是这些控件的ClientID。号上分不多了(全部分都押这了)各位大虾帮帮忙!

選擇yí莣的主页 選擇yí莣 | 初学一级 | 园豆:31
提问于:2011-11-14 10:27
< >
分享
最佳答案
0

jquery处理的是客户端的HTML代码的,你如果不确定ClientID可以用其他的代替啊,比如加上特定的class,然后用jquery来选择

收获园豆:30
artwl | 专家六级 |园豆:16526 | 2011-11-14 10:33

就是那些控件已经写好了的。如果加Class的话工作量会很大不说,还有可能发生其他问题,能不能不改原有的C.aspx页面中的东西而能获取到c页面的值呢?

選擇yí莣 | 园豆:31 (初学一级) | 2011-11-14 10:40

@選擇yí莣: 试试这种方法:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(
function() {
$(
"#<%=RadioButtonList1.ClientID %>").hide('slow');
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem Value="Ten"></asp:ListItem>
</asp:RadioButtonList>
</form>
</div>
</body>
</html>



artwl | 园豆:16526 (专家六级) | 2011-11-14 10:51
其他回答(5)
0

a.ascx是在哪个页面的?

收获园豆:10
dudu | 园豆:39014 (高人七级) | 2011-11-14 10:32

a.ascx是在c.aspx中的

支持(0) 反对(0) 選擇yí莣 | 园豆:31 (初学一级) | 2011-11-14 10:38

@選擇yí莣: 是a.ascx获取b.master中的用户控件吗?

支持(0) 反对(0) dudu | 园豆:39014 (高人七级) | 2011-11-14 10:53

@dudu: 是c.aspx中的a.ascx获取c中的控件。

支持(0) 反对(0) 選擇yí莣 | 园豆:31 (初学一级) | 2011-11-14 14:04

@選擇yí莣: 试试Page.FindControl("控件ID")

支持(0) 反对(0) dudu | 园豆:39014 (高人七级) | 2011-11-14 18:46
0

纠结于控件你就输了,反正输出都是html

longlong | 园豆:220 (菜鸟二级) | 2011-11-14 11:10
0

你看一下c.aspx运行后的html源码,看你的控件是什么id了,就用它就行。比如我在c.aspx中放一个TextBox,服务器端的ID为TextBox1,运行以后查看html源码它的id是“MainContent_TextBox1",则在用户控件中用下面这句就可以获取到了。

$("#MainContent_TextBox1").val();
收获园豆:10
LCM | 园豆:6876 (大侠五级) | 2011-11-14 13:20
0

莫名其妙,你有的恐怕是服务器控件的显示ID,因为有模板页的存在,页面呈现的控件ID已经被污染,那么你为什么不可以用Control.ClientID去获得呢,难道获取不到吗

收获园豆:10
^沙嘉^ | 园豆:326 (菜鸟二级) | 2011-11-14 14:38
1

//CheckBox值

$(":checkbox").each(function () {
      if (this.id.indexOf(contlionID) > 0) {

returnValue = this.checked.toString();

}

//RadioButton值
     $(":radio").each(function () {
      if (this.id.indexOf(contlionID) > 0) {
       returnValue =  this.checked.toString();
      }
     });

//TextBox值

$(":text").each(function () {
      if (this.id.indexOf(contlionID) > 0) {

returnValue = this.value.toString();

}

//Button

$(":submit").each(function () {
      if (this.id.indexOf(contlionID) > 0) {

returnValue = this.value.toString();

}

//LinkButton或a
     $(":a").each(function () {
      if (this.id.indexOf(contlionID) > 0) {

returnValue = this.innerText.toString();

}

本人用的是比较笨的办法,一一列举表单元素,获取然后循环,匹配id,再取值。但不同类型的控件,取值的属性也不一样,这个还有待研究。感谢各位大虾。。。

選擇yí莣 | 园豆:31 (初学一级) | 2011-11-15 11:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册