将C#变量作为参数放在ASP .NET自定义控件上

时间:2012-01-25 21:33:33

标签: c# asp.net

我在ASP页面中有这个代码:

<%@ Register TagPrefix="genies" Namespace="TheNamespace" Assembly="TheAssembly"%>

...

<% string name = GetTag().Name; %>
<div class="<%= name %>"></div>
<genies:BarGenie ID="BarGenie1" runat="server" Title="<%= name %>" />

BarGenie类具有以下代码:

public class BarGenie : Control {

    public string Title { get; set; }

    protected override void Render(HtmlTextWriter writer) {
        writer.Write("<div>" + Title + "</div>");
    }

}

这是生成的HTML:

<div class="E00383"></div>
<div><%= name %></div>

我想看看这个HTML:

<div class="E00383"></div>
<div>E00383</div>

我在ASPX代码中尝试过各种各样的东西:@ name,&lt;%#name%&gt;等但我无法弄清楚发生了什么。是否有其他方法插入我应该使用的自定义控件?我使用此自定义控件的方法是否错误?

3 个答案:

答案 0 :(得分:3)

尝试使用GetTag()。名称而不是名称。

同时查看http://www.scottfindlater.co.uk/blog/asp-net-inline-code-and可能会有所帮助

<div class="<%= GetTag().Name%>"></div>
<genies:BarGenie ID="BarGenie1" runat="server" Title="<%= GetTag().Name%>" />

答案 1 :(得分:1)

尝试使用<%= %>替换<%# %>代码并在代码隐藏中添加对this.DataBind();的调用。

答案 2 :(得分:1)

如何在代码隐藏中设置该值:

this.BarGenie1.Title = GetTag().Name;