我的UE_area.ascx中有TextBox控件,此ascx正常加载到UserEdit.aspx中.现在的问题是UserEdit是一个提交表单,我要把UE_area.ascx中TextBox.Text也提交到UserEdit.aspx的后台cs中,应该怎么做呢?我在后台直接写ascx的TextBox控件ID,会提示说找不到.我以前是做asp的,感觉应该和<!--#include file="xxx.asp"-->差不多,但却不一样.本人刚接触C#.net还很菜,请帮讲清楚点,谢谢了.

解决方案 »

  1.   

    UserEdit.aspx.cs 在这里 
      UE_area.FindControl("ID") as TextBox;
      

  2.   

    在UE_area.ascx把声明TextBox的protected改成public,然后在UserEdit.aspx中就可以直接引用:
    UE_area1.TextBox1
      

  3.   

    ((TextBox)UE_area1.FindControl("TextBox1")).Text
      

  4.   

    页面传值就能实现,Request一下就可以了.
      

  5.   

    在UE_area.ascx中写一个属性public string GetArea
    {
    return TextBox1.text;
    }
    然后在UserEdit.aspx 后台中写 UE_area.ascx的 ID.GetArea 就可以
      

  6.   

    现在又出现新问题罗在UE_area.ascx中,生成了下面一段,我不知道应该往里面写什么。
    UE_area.ascx中用的是控件ComboBox,这是ComponentArt2007的UI控件。
    internal static ComboBox FindControl(string p)
    {
    throw new Exception("The method or operation is not implemented.");
    }还有一个问题是,上面windinwing(潇笑)所说的是取值,如果我要给ComboBox 赋值又应该怎么做呢?
    我用的这一段有错
    UE_area.FindControl("ComboBox1") as ComboBox = ds.Tables["myds"].Rows[0]["sf"].ToString();错误 2 赋值号左边必须是变量、属性或索引器 D:\!ayurep\成都企业站CDQY\00_DotNet\CDQYnet\member\UserInfo\UserEdit.aspx.cs 44 13 CDQYnet
      

  7.   

    加入属性
    public string TextValue1
    {
        set { TextBox1.Text = value;}
        get { return TextBox1.text;}
    }这样写封装性好些,以后也容易改!
      

  8.   

    请问fangbuge(窗外的雨)  那要怎么在cs里调用呢?
      

  9.   

    //
    MyUC.TextValue1 = "hello";//
    Response.Write(MyUC.TextValue1);
      

  10.   

    <%@ Register TagPrefix="uc1" TagName="left" Src="control/left.ascx" %>
    public System.Web.UI.WebControls.TextBox TextBox1;
    TextBox1.Text就可以取到值了。
      

  11.   

    还是没搞,晕头,我把我的代码贴出来算了。
    UE_area.ascx.cs
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using ayurep.ADOKeycap;
    using ComponentArt.Web.UI;
    namespace CDQYnet.member.UserInfo
    {
        public partial class UE_area : System.Web.UI.UserControl
        {
            private Database db;
            public UE_area()
            {
                db = DatabaseManager.CreateDatabase("cdqyConn");
            }        public string TextValue1
            {
                set { ComboBox1.Text = value; }
                get { return ComboBox1.Text; }
            }        protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack && !ComboBox2.IsCallback)
                {
                    loadCountryCombo();
                }
            }        private void loadCountryCombo()
            {
                DataSet ds = db.ExecuteDataSet("SELECT * FROM Address_District ");
                ComboBox1.DataSource = ds;
                ComboBox1.DataBind();
            }
            public void ComboBox2_DataRequested(object sender, ComboBoxDataRequestedEventArgs args)
            {
                loadItems(args.StartIndex, args.NumItems, args.Filter);
            }
            public void loadItems(int iStartIndex, int iNumItems, string sFilter)
            {
                ComboBox2.Items.Clear();            if (sFilter.Length > 0)
                {
                    DataSet ds = db.ExecuteDataSet("SELECT * FROM Address_Street WHERE DistrictID = " + sFilter + " ORDER BY DistrictID");                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        DataRow oRow = (DataRow)ds.Tables[0].Rows[i];
                        ComboBox2.Items.Add(new ComboBoxItem(oRow["StreetName"].ToString()));
                    }
                }            ComboBox2.ItemCount = ComboBox2.Items.Count;
            }
            #region Web Form Designer generated code
            override protected void OnInit(EventArgs e)
            {
                //
                // CODEGEN: This call is required by the ASP.NET Web Form Designer.
                //
                InitializeComponent();
                base.OnInit(e);
            }        /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.Load += new System.EventHandler(this.Page_Load);
                ComboBox2.DataRequested += new ComponentArt.Web.UI.ComboBox.DataRequestedEventHandler(ComboBox2_DataRequested);
            }
            #endregion
            //internal static TextBox FindControl(string p)
            //{
            //    throw new Exception("The method or operation is not implemented.");
            //}
        }
    }=========================================
    UserEdit.aspx.cs
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using ComponentArt.Web.UI;
    using ayurep.ADOKeycap;
    using CDQYClassLibrary;namespace CDQYnet.member.UserInfo
    {
        public partial class UserEdit : System.Web.UI.Page
        {
            string UserID, UserName;
            private Database db;
            public UserEdit()
            {
            db = DatabaseManager.CreateDatabase("cdqyConn");
            }        //protected modules.UE_area module1;
            protected UserControl.UE_area mBookSeach;        protected void Page_Load(object sender, EventArgs e)
            {            UserID = Session["User_id"].ToString();
                UserName = Session["User_name"].ToString();            if (!this.IsPostBack)
                {ShowData();}        }        private void ShowData()
            {
                DataSet ds = db.ExecuteDataSet("SELECT * FROM corporation WHERE ID=" + UserID, "myds");//myds为虚拟表名,名字可任意起
                ID_qymc.Text = Convert.ToString(ds.Tables["myds"].Rows[0]["qymc"]);//读取第0行,第1列数据
                //UE_area.FindControl("ComboBox1") as ComboBox = ds.Tables["myds"].Rows[0]["sf"].ToString();
                //myText = Convert.ToString(ds.Tables["myds"].Rows[0]["sf"]);
                //ComboBox1.Text = myText;
                //ComboBox2.Text = ds.Tables["myds"].Rows[0]["city"].ToString();
                //if (Convert.ToString(ds.Tables["myds"].Rows[0]["qylb"]) = "生产型") { ID_qylb.SelectedValue = "生产型"; }
                //ID_qylb.Text = ds.Tables["myds"].Rows[0]["qylb"].ToString();
                //Period.Text = ds.Tables["myds"].Rows[0]["Period"].ToString();
                //Specifications.Text = ds.Tables["myds"].Rows[0]["Specifications"].ToString();
                //Quantity.Text = ds.Tables["myds"].Rows[0]["Quantity"].ToString();
                //Packaging.Text = ds.Tables["myds"].Rows[0]["Packaging"].ToString();
                //PriceTerms.Text = ds.Tables["myds"].Rows[0]["PriceTerms"].ToString();
                //txtImg.Text = ds.Tables["myds"].Rows[0]["Picture"].ToString();
                FCKeditor.Value = ds.Tables["myds"].Rows[0]["qyjj"].ToString();
            }        protected void Button1_Click(object sender, EventArgs e)
            {//编辑记录
                db.AddParameter("@qymc", ID_qymc.Text);
                db.AddParameter("@sf", TextValue1.Text);
                //db.AddParameter("@city", ((ComboBox)UE_area.FindControl("ComboBox2")).Text);
                //db.AddParameter("@city", UE_area.FindControl("ComboBox2") as ComboBox);
                //db.AddParameter("@Specifications", Specifications.Text);
                //db.AddParameter("@Quantity", Quantity.Text);
                //db.AddParameter("@Packaging", Packaging.Text);
                //db.AddParameter("@PriceTerms", PriceTerms.Text);
                //db.AddParameter("@Picture", txtImg.Text);
                db.AddParameter("@qyjj", FCKeditor.Value);
                db.AddParameter("@UserID", UserID);
                db.ExecuteNonQuery("UPDATE corporation SET qymc=@qymc,qyjj=@qyjj,sf=@sf,city=@city WHERE ID=@UserID ");//执行ExecuteNonQuery方法(注意:ExecuteNonQuery可实现添加、更新、删除)             JScript.Alert("提示:修改成功!");
            }
        }
    }
      

  12.   

    我是用BearRui  的办法搞定的,先没弄对。最后加了句 protected global::CDQYnet.member.UserInfo.UE_area UEarea;搞定!