给服务器控件的属性传动态值的问题
我写了一个服务器控件,代码如下:
using System;
using System.Web.UI;
namespace mytag
{
public class MyTag : Control
{
private String msg;
public String Msg
{
get
{
return msg;
}
set
{
msg = value;
}
}
protected override void Render(HtmlTextWriter writer)
{
writer.WriteLine("<h3>这是我的TAG, "+ Msg + "<h3>");
}
}
}
使用此服务器控件的ASPX如下:
<%@ Register TagPrefix="tag" Assembly="res" Namespace="mytag" %>
<%@ Page Language="C#" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<%
String msg = "哈哈";
%>
<tag:MyTag runat="server" Msg="<%=msg%>"/>
</body>
</html>
可是在IE里访问时,查看源文件是如下:
<h3>这是我的TAG, <%=msg%><h3>
请教高手,如何才能将变量msg的值"哈哈"传送到tag里面去呢
------解决方案--------------------我也遇到过同样的问题。<% %>好像只能用在非服务器控件里(没有runat="server"的控件),因为服务器控件默认是被服务器解析的。
------解决方案--------------------private string msg="hehe";
<tag:MyTag runat="server" Msg='<%=msg%>' />
------解决方案--------------------mark
------解决方案--------------------4楼的方法可行。
------解决方案--------------------怎么不在代码文件中传值呢。
------解决方案--------------------后台:pageload事件- WebUserControl1.msg="哈哈";
<uc1:WebUserControl ID="WebUserControl1" runat="server"/>