NavigateUrl与从AppSettings填充的NavigateUrlFormat(动态)

时间:2010-01-15 17:31:03

标签: asp.net

我有一个带有TemplateField内部超链接的gridview。 NavigateUrlFormat将从Web.Config文件中填充,它具有以下格式:

mysite.com/ {0}

但是,如果将从gridview数据源填充{0},则我当前的代码不起作用:

<asp:TemplateField HeaderText="WorkOrder #">
                <ItemTemplate>
                    <asp:HyperLink ID="HyperLink1" runat="server" 
                        NavigateUrl='<%# Eval("WorkOrderKey", "<%$ AppSettings:DispatchLink %>") %&gt;' 
                        Text='<%# Eval("WorkOrderKey") %>'></asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>

问题出在“AppSettings:DispatchLink”之后,它会在看到“%&gt;”时关闭标记。有没有解决这个问题的方法?

谢谢你, 肯尼。

1 个答案:

答案 0 :(得分:1)

您无法嵌套&lt;%#和其他标记。请改用ConfigurationManager.AppSettings [“DispatchLink”](请参阅MSDN中的lookup correkt Class / Property)。

或者:如果您不止一次使用该HyperLink Control,我建议您创建一个派生自System.Web.UI.WebControls.HyperLink的MYHyperLink,并在构造函数中设置Property NavigateUrlFormatString。

这样的事情:

public class DispatchLink : System.Web.UI.WebControls.HyperLink
{
    public DispatchLink()
    {
        this. NavigateUrlFormatString  =  ConfigurationManager.AppSettings["DispatchLink"] 
    }
}