我需要在一个用户控件中获取套用了模板页的页面控件。应该怎样获取?
a.ascx,用户控件,b.master,模板页,c.aspx套用模板页b,
在a这个用户控件中获取c页面中的控件的值,但控件类型不固定。有可能是TextBox,Button,CheckBox,RidoButton.....要取这些控件的值。有这些控件的ID,但不是这些控件的ClientID。号上分不多了(全部分都押这了)各位大虾帮帮忙!
jquery处理的是客户端的HTML代码的,你如果不确定ClientID可以用其他的代替啊,比如加上特定的class,然后用jquery来选择
就是那些控件已经写好了的。如果加Class的话工作量会很大不说,还有可能发生其他问题,能不能不改原有的C.aspx页面中的东西而能获取到c页面的值呢?
@選擇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>
a.ascx是在哪个页面的?
a.ascx是在c.aspx中的
@選擇yí莣: 是a.ascx获取b.master中的用户控件吗?
@dudu: 是c.aspx中的a.ascx获取c中的控件。
@選擇yí莣: 试试Page.FindControl("控件ID")
纠结于控件你就输了,反正输出都是html
你看一下c.aspx运行后的html源码,看你的控件是什么id了,就用它就行。比如我在c.aspx中放一个TextBox,服务器端的ID为TextBox1,运行以后查看html源码它的id是“MainContent_TextBox1",则在用户控件中用下面这句就可以获取到了。
$("#MainContent_TextBox1").val();
//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,再取值。但不同类型的控件,取值的属性也不一样,这个还有待研究。感谢各位大虾。。。