关于用户自定义控件中属性使用<%=xx%>的代码问题
本拉灯 2007-01-11 11:35:38 我弄了一个自定义的控件
我在ascx中引用这个控件
<XXX:BoardDropDownList ID="JumpBoard" Runat=server Mode="JUMP" JumpURL="<%=Globals.Path%>/List.aspx"/>
我现在不解的是为什么IE浏览后,JumpURL会把<%=Globals.Path%>当成字符串,而不是服务端的代码,我的目的是JumpURL这个属性相当于
TextBox中的Text一样 当用户<asp:TextBox id=xx runat=server Text="<%=XX%>"/>
他会把<%=XX%>当成服务端的变量使用而不是字符串,
CS
如下
public class BoardDropDownList:DropDownList
{
public BoardDropDownList()
{
}
protected override void CreateChildControls()
{
if(!Page.IsPostBack)
{
AddItem();
AddBoardGroup();
}
}
private void AddItem()
{
switch(Mode.ToUpper())
{
case "JUMP":
Items.Add(new ListItem(ResourceManager.GetString("JumpOrtherBoard"),"#"));
this.Attributes.Add("OnChange","javascript:location.href=this.value;");
break;
case "SEARCH":
Items.Add(new ListItem(ResourceManager.GetString("SearchAllBoard"),"0"));
break;
case "MOVETOPIC":
Items.Add(new ListItem(ResourceManager.GetString("ManagePost_MovedTopicSelect"),"0"));
break;
}
}
private void AddBoardGroup()
{
foreach(BoardGroup G in BoardGroups.GetBoardGroups())
{
switch(Mode.ToUpper())
{
case "JUMP":
Items.Add(new ListItem("╋"+G.BoardGroupName,"#"));
break;
case "SEARCH":
Items.Add(new ListItem("╋"+G.BoardGroupName,G.BoardGroupID.ToString()));
break;
case "MOVETOPIC":
Items.Add(new ListItem("╋"+G.BoardGroupName+ResourceManager.GetString("ManagePost_NoMoved"),"0"));
break;
default:
Items.Add(new ListItem("╋"+G.BoardGroupName,"0"));
break;
}
AddBoard(G.BoardGroupID);
}
}
private void AddBoard(int BoardGroupID)
{
string URL=Globals.Path+"/BBSList.aspx?BoardID={0}";
if(JumpUrl!=null)
URL=JumpUrl;
foreach(Board B in Boards.GetBoards(BoardGroupID))
{ if(Mode.ToUpper()=="JUMP")
Items.Add(new ListItem("├-"+B.BoardName,string.Format(URL,B.BoardID.ToString())));
else
Items.Add(new ListItem("├-"+B.BoardName,B.BoardID.ToString()));
}
}
private string jumpboard="";
private string jumpURL;
public string JumpUrl
{
get{return jumpURL;}
set{jumpURL=value;}
}
public string Mode
{
get{return jumpboard;}
set{jumpboard=value;}
}
}