<cc1:ServerControl1 ID="ServerControl2" runat="server" Text=<%#string.Format("测试")%>  />结果是Text 为null 哥们没有值传过去,该怎么半?

解决方案 »

  1.   

    微软写的,呵呵。using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;namespace ServerControl2
    {
        [DefaultProperty("Text")]
        [ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]
        public class ServerControl1 : WebControl
        {
            [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("")]
            [Localizable(true)]
            public string Text
            {
                get
                {
                    //String s = (String)ViewState["Text"];
                    //return ((s == null) ? "[" + this.ID + "]" : s);
                    return (String)ViewState["Text"];
                }            set
                {
                    ViewState["Text"] = value;
                }
            }        protected override void RenderContents(HtmlTextWriter output)
            {
                output.Write(Text);
            }
        }
    }
      

  2.   

    <cc1:ServerControl1 ID="ServerControl2" runat="server" Text=<%=string.Format("测试")%> />改成这样
      

  3.   


    早就试过了。服务器报错
    分析器错误消息: 服务器标记不能包含 <% ... %> 构造。
      

  4.   

    Text=<%=string.Format("测试")%>是“=”。
      

  5.   

    string.Format("测试")是这么用吗?至少2个参数啊http://msdn.microsoft.com/en-us/library/system.string.format.aspx<%=%>是对的
      

  6.   


    能够传送动态的值,例如 
    <cc1:ServerControl1 ID="ServerControl2" runat="server" Text=<%#Request.QueryString["classid"]%> />
      

  7.   


    现在问题改成这个。
    <cc1:ServerControl1 ID="ServerControl2" runat="server" Text=<%#Request.QueryString["classid"]%> />
    :(
      

  8.   


    成功了。不过运算都是protected override void OnInit(EventArgs e)里面的。谢谢啦。现在测试
      

  9.   


    呵呵,我这个不行,因为protected override void OnInit(EventArgs e)里面有运算,需要提前绑定。