比如用户控件 MyUserControl1 中的 ClassID 属性是一个List<int>集合。public partial class MyUserControl1 : System.Web.UI.UserControl
    {
        private List<int> _ClassID = null;
        public List<int> ClassID
        {
            get { return this._ClassID; }
            set { this._ClassID = value; }
        }        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == false)
            {
                this._ClassID = new List<int>();
            }
        }
    }
调用这个控件的前台.aspx页面中如何给这个属性赋值?<%@ Register TagPrefix="UC" TagName="MyUserControl1" Src="~/MyUserControl1.ascx" %>
<UC:MyUserControl1 ID="ucMyUserControl1" runat="server" ClassID="这里怎么赋值?">
</UC:MyUserControl1>

解决方案 »

  1.   

    如果是想说把
    public List<int> ClassID
    改成
    public string ClassID
    就不要说了...一定是要 list<int> 或 int[]
      

  2.   

    基本上无法直接在设计代码中赋值。你可以写<UC:MyUserControl1 ID="ucMyUserControl1" runat="server" ClassID="<%# GetListOfIntegerData() %>">然后在页面的page_load中写:     ucMyUserControl1.DataBind();同时再实现这个GetListOfIntegerData方法:      protected List<int> GetListOfIntegerData()
         {
             List<int> ret=new  List<int>();
             ......
             return ret;
         }当然,你也可以写一个Convert方法,从字符串中产生List<Int>。例如:      protected List<int> ConvertStringToListOfInteger(string s)
         {
             List<Int> ret=new  List<Int>();
             foreach(i in s.split(','))
                  ret.Add(int.parse(i);
             return ret;
         }这样你可以在绑定表达式中直接编辑字符串了,例如:<UC:MyUserControl1 ID="ucMyUserControl1" runat="server" ClassID='<%# ConvertStringToListOfInteger("1,2,3,4") %>'>这个ConvertStringToListOfInteger通用性更强一点吧,是个好玩的玩具。