日期:2014-05-18  浏览次数:20493 次

ascx 与aspx 页面传值,高手请进!
紧急求助
  本人在aspx 页面上动态加载的ascx页面,现在在aspx 页面上有一个控件 我想做的是点击aspx 页面的按钮 提交所有ascx 页面的数据,问一下怎么实现! 到网上找了好多例子都不行(注意我这些参数数量较多,ascx也不定,排除session 的做法。)

------解决方案--------------------
UP

公开属性的方法不行吗?
------解决方案--------------------
首先ascx不是页面,作为控件,必须要有aspx这样的一个宿主。
可以给ascx写一个方法,如savedata,在你的aspx页面按钮的click里去调用控件的savedata方法。
如果你的控件不定,可以写一个接口,所有用到的ascx控件都继承此接口并实现savedata方法,button的click里 把当前控件转为接口后调用此方法。
------解决方案--------------------
关注一下
------解决方案--------------------
探讨
UP

公开属性的方法不行吗?

------解决方案--------------------
帮顶
------解决方案--------------------
ascx.index_channel index_channel=(ascx.index_channel)Page.FindControl("Index_channel1");
index_channel.dt = dt;

动态加载用户控件,往里面传参数
------解决方案--------------------
弄清楚ascx的概念。
ascx被放在aspx里就属于aspx了
给aspx传递参数 就可以在ascx里Request到。
------解决方案--------------------
暴露属性
------解决方案--------------------
Page.Items["key"] = value;
------解决方案--------------------
C# code

//****ascx用户控件中,定义一个要接收参数的属性
例子:
private string mBookTitle;
public string BookTite
{
   get{return mBokTitle;}
   set{mbookTitle=value;}
}


//****在aspx页面中调用此属性即可
protected UserControl.BookSeach mBookSeach;

//****设置传值
mBookSeach.BookTitle=txtbooktitle.value;

 

用户控件XXX.ascx :
<%@ Control Language="c#" %>
//html...
<script runat="server">
  public string BackClo ="red";  //这里定义了一个参数
  public void Page_Load()
  { }
</script>

在aspx中调用此变量,可以 :
<%@ Register TagPrefix="UserControl" TagName="Webbott" Src="XXX.ascx" %>
<html>
<body>
<form runat="server" method="post">
<UserControl:Webbott id="mybott" runat="Server" />
</form>
</body>
<script Language="c#" runat="Server">
 public void Page_Load()
  {
     string newclo = "Black";
     mybott.BackClo = newclo;    //更改了ascx中的那个参数!
  }
</script>
</html>

------解决方案--------------------
用户控件,这个例子挺好的
探讨
C# code
//****ascx用户控件中,定义一个要接收参数的属性
例子:
private string mBookTitle;
public string BookTite
{
get{return mBokTitle;}
set{mbookTitle=value;}
}


//****在aspx页面中调用此属性即可
protected UserControl.BookSeach mBookSeach;

//****设置传值
mBookSeach.BookTitle=txtbooktitle.value;



用户控件XXX.ascx :
<%@ Control Language="c#" %>
//html...
<script run…

------解决方案--------------------
学习,关注...
------解决方案--------------------
我想做的是点击aspx 页面的按钮 提交所有ascx 页面的数据
==
什么意思?
------解决方案--------------------
探讨
首先ascx不是页面,作为控件,必须要有aspx这样的一个宿主。
可以给ascx写一个方法,如savedata,在你的aspx页面按钮的click里去调用控件的savedata方法。
如果你的控件不定,可以写一个接口,所有用到的ascx控件都继承此接口并实现savedata方法,button的click里 把当前控件转为接口后调用此方法。

------解决方案--------------------
探讨
引用:
首先ascx不是页面,作为控件,必须要有aspx这样的一个宿主。
可以给ascx写一个方法,如savedata,在你的aspx页面按钮的click里去调用控件的savedata方法。
如果你的控件不定,可以写一个接口,所有用到的ascx控件都继承此接口并实现savedata方法,button的click里 把当前控件转为接口后调用此方法。


很详细。


private Control cc;

void Page_Load(object sender,EventArgs e)
{