我们可以从页面标记中设置ListDictionary属性吗?

时间:2010-12-31 11:11:09

标签: c# asp.net

private ListDictionary parameters;
public ListDictionary Parameters
{
    get
    {
        if (parameters == null) parameters = new ListDictionary();
        return parameters;
    }
    set
    {
        if (parameters == null) parameters = new ListDictionary();
        parameters = value;
    }
}

我可以在ASP.NET页面的标记中设置这样的属性吗?怎么样?

我的意思是<uc1:CustomControl Parameters="?"

2 个答案:

答案 0 :(得分:0)

您可以在code block恕我直言中写下此声明。

答案 1 :(得分:0)

使用[System.ComponentModel.Category("Settings")],然后属性将出现在标记IntelliSense

我认为您需要一种解决方法,因为标记中的所有值都是字符串,因此您需要将它们解析为特定的类:

<uc1:CustomControl Parameters="foo,bar" />

[Category("Settings")]
public string Parameters
{
    set
    {
        var arr = String.Split(",", value).Select(p => p.Trim());
        if (parameters == null) parameters = new ListDictionary();
        foreach (string p in arr)
            parameters.Add(p);

    }
}

或使用内联(也称代码块),例如:

<%= new ListDictionary { "foo", "bar " } %>