做一个控件,ascx页面调用aspx页面数据,在此中传值给这个aspx页面

解决方案 »

  1.   

    控件,你可以参考随便一个asp.net控件,例如DropdownList控件,当SelectedItem、SelectedValue、SelectedIndex改变时触发SelectedIndexChanged事件来通知自己的客户。控件并不想当然地去假设自己放在哪一个页面里(实际上控件还可以放在其它空间里),而是用事件通知使用自己(组合自己)的父控件。
      

  2.   

    ascx:
    public object yourValue
    {
      set{ 接收方法或什么的}
      get{ 给aspx访问的返回对象什么的;}
    }
      

  3.   

    ascx:
    public object yourValue
    {
      set{ 接收方法或什么的}
      get{ 给aspx访问的返回对象什么的;}
    }
      

  4.   

    做个不例子,如WebUserControl1.ascx里两个TextBox,一个Button,点击Button时,把两个TextBox里输入的东西相加后传给aspx.1、建个UserControls目录,目录下建一个WebUserControl1.ascx<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />public delegate void MyEventHandler(object sender, MyEventArgs e);public partial class UserControls_WebUserControl : System.Web.UI.UserControl
    {    public event MyEventHandler MyEvent = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (MyEvent != null)
                MyEvent(this, new MyEventArgs(TextBox1.Text + TextBox2.Text));
        }}
    public class MyEventArgs : EventArgs
    {
        public MyEventArgs(string s) 
        {
            this.ReturnValue = s;
        }
        public string ReturnValue { get; set; }
    }
    2、aspx<%@ Register src="UserControls/WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>
    <form id="form1" runat="server">
        <div>
        
            <uc1:WebUserControl ID="WebUserControl1" runat="server"   />
        
        </div>
    </form>
    protected void Page_Load(object sender, EventArgs e)
    {
            this.WebUserControl1.MyEvent += (object source, MyEventArgs arg) =>
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", string.Format("alert('{0}');", arg.ReturnValue), true);
                };
    }