诚请高人出手,帮忙解决问题
我有一个用户控件包含着另外一个用户控件,现在我在一个页面中引用了父控件之后,需要在页面上的js中取到子用户控件中的一个文本框的值,问这么样才能办到?
因为在子用户控件中的控件 <asp:TextBox id= "txt1 " runat= "server "> </asp:TextBox> 到了页面后就变成
<input name= "Operation1:Detail:txt1 " type= "text " id= "Operation1_Detail_txt1 " style= "width:70px; " value= "aaaa " /> 了.
请帮忙取到value的值
[解决办法]
关注!!
[解决办法]
子控件的txt1设为public的.父控件再声明一个public属性如public ChildTextBox{ get{ return 子控件.txt1;}}调用页面.js:var txt =document.getElementById( " <%=this.父控件id.ChildTextBox.ClientID%> ");alert(txt.value);
[解决办法]
在父控件中遍历一下找相关的类型行吗
[解决办法]
呵呵,最笨的方法,直接取,就是灵活性不够:
document.getElementById( "Operation1_Detail_txt1 ").value
[解决办法]
学习
[解决办法]
遍历控件吧
[解决办法]
高老庄的人算高人吗?
[解决办法]
在父控件声明属性,返回它引用子控件的ID
public string ChildTextBoxID
{
get
{
return this.子控件.txt1.ClientID;
}
}
页面上 document.getElementById( " <%= 父控件.ChildTextBoxID %> ");
[解决办法]
在父控件里还好做一点
var ele = document.getElementById( " <%= 子控件.txt1.ClientID %> ");
alert(ele.value);
[解决办法]
@cpp2017(慕白兄)大概我说的有的问题,我的js实际上是写在父控件里的==========> 那就更简单子控件的txt1设为public的.父控件中var txt = document.getElementById( " <%=子控件id.txt1.ClientID%> ");
[解决办法]
up!
[解决办法]
试试层层封装吧.
[解决办法]
下次cpp回答了的话,我顶就好了 呵呵
[解决办法]
八戒在减肥啊?
[解决办法]
在你的父控件
.cs中
public 子控件 子控件ID;
js块中
var txtValue = document.getElementById( " <%= 子控件ID.txt1.ClientID %> ");
[解决办法]
可是我没有办法获得子控件的id啊,在页面中所有的id都变化了
=======》
<%= 子控件ID.txt1.ClientID %> 这是运行服务器代码,这里的id是你控件的id
<you:usercontrol runat= "server " ID= "ControlID " 是这个ID。。。
[解决办法]
子控件的id的id是肯定变化了的.要么怎么用 "子控件ID.txt1.ClientID " ClientID你要知道当前一般都是 "控件(索引)_text1 "如果上面还有控件 那就是 "父控件索引_子控件(索引)_text1 "
你在控件里的cs里response.write(txt1.ClientID)自然能看到在页面是如何呈现的。
[解决办法]
还是分多有人气
[解决办法]
有情帮顶
------解决方案--------------------
[解决办法]
好问题,帮顶下!热切关注
[解决办法]
子控件加一个属性存子控件的ClientID的值
页面后台就能取得这个值
然后在你的JS代码中把这个值赋过去就可以得到txt1的ID了
[解决办法]
关注
[解决办法]
控件.UniqueID试试
[解决办法]
UP
[解决办法]
JFJf
[解决办法]
你把子控件的ClientID值发送到前端去,前端用js取
[解决办法]
應該是document.getElementById( "父控件名 "+ "_ "+ "子控件名 "+ "_ "+ "文本框名 ").value