日期:2014-05-16  浏览次数:20498 次

如何获取另一个页面中的控件ID
比如我有两个页面a.aspx和b.aspx,我想在a.aspx中回去b.aspx中所有文本框的ID.如何获取?如果b页面是用户控件,可以用loadcontrol来加载,然后获取b页面的控件ID,但是b页面是web窗体.

我想做一个审批的程序,有一个步骤表,每个步骤都保存有在b页面中可以修改值的那个控件ID,比如在步骤一保存有这样一个字符串"txt_a,txt_b,txt_c",在加载b页面的时候,通过循环遍历所有控件,比较ID号,除txt_a,txt_b,txt_c这3个文本框外,其它都设置为readonly,这样达到在特定步骤修改特定字段的值.

可能我这个思路并不是很好,如果无法获取另一个页面的控件,有其他方法达到我的目的也行.
------解决方案--------------------
 public class WebData : System.Web.UI.Page
    {
        public static Model GetData(System.Web.UI.Page p)
        {
            Model m = new Model();
            Type t = m.GetType();
            foreach (PropertyInfo pi in t.GetProperties())
            {
                pi.SetValue(m, ((System.Web.UI.WebControls.TextBox)p.FindControl(pi.Name)).Text, null);
            }
            return m;
        }

        public static void SetData(Model m, System.Web.UI.Page p)
        {
            Type t = m.GetType();
            foreach (PropertyInfo pi in t.GetProperties())
            {
                ((System.Web.UI.WebControls.TextBox)p.FindControl(pi.Name)).Text = pi.GetValue(pi.Name, null).ToString();
            }
        }
    }

    public class Model
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string address;

        public string Address
        {
            get { return address; }
            set { address = value; }
        }
        private string email;

        public string Email
        {
        &nb