如何在Semantic Mediawiki中处理可选值或空值?

时间:2018-03-14 04:45:21

标签: mediawiki semantic-mediawiki

我正在为Semantic Mediawiki实现设置一些模板。模板参数被输入注释。但是,这些值是可选的;并不总是在每个领域都有价值。这会导致某些数据类型出现问题。具体来说,如果我有

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
    string strPrevDisplayColumn = "";
    string strCurrentDisplayColumn = "";
    if (e.Item.ItemIndex != 0)
    {
        RepeaterItem previousRepeaterItem = rptCustSales.Items[e.Item.ItemIndex - 1];

        // cannot get value
        strPrevDisplayColumn = Convert.ToString(DataBinder.Eval(previousRepeaterItem.DataItem, "DisplayColumn")) 

    }
    strCurrentDisplayColumn = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "DisplayColumn"));

    if (strCurrentDisplayColumn == strPrevDisplayColumn)
    {
        // Do something
    }
}

我会收到{{#set: | Has phone={{{phone}}} }} 形式的错误,其中***是URIs of the form *** are not allowed或我试图放在那里的任何默认值。电话或电子邮件等数据类型似乎不可能是空的。我无法弄清楚如何在我的模板中支持这些字段的空值。在SMW注释中使用空值的正确模式是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用default-value feature模板参数,但为其指定一个空白默认值:

{{#set:
| Has phone={{{phone|}}}
}}

更新:)或者如果您需要阻止它设置任何内容,请将其包装在条件中:

{{#if: {{{phone|}}}
| {{#set: Has phone={{{phone}}} }}
}}