【发布时间】:2017-01-07 06:13:19
【问题描述】:
我有一个 TFS 工作项字段,大多数工作项似乎都存在,但有时不存在。
我正在尝试使用 WorkItemCollection 将这些工作项绑定到列表视图中,除了我尝试绑定该字段时,一切正常。
字段本身是在查询选择中指定的,不会出错。但是,在某些工作项上不引发错误的情况下获取该字段的唯一方法是(在 .cs 中)::
foreach(WorkItem w in queryResults)
{
if (w.Fields.Contains("Symptom"))
{
w.Fields["Symptom"].Value.ToString();//show
}
}
由于这些工作项处于只读模式,我不能只强制写入值等。(除非我返回一个字典,其值与工作项配对,但我认为这不是最好的解决方案。 ..)
我正在尝试做的是在 Listview ItemTemplate 中,像这样::
<div class="details">
<%# Server.HtmlEncode(Eval("Fields.Contains(\"Symptom\")? Fields[\"Symptom\"].Value : \"\";").ToString())%>
</div>
但我得到“包含”不是有效的“字段”属性(因为它是一种收集方法) - 我被 eval 卡住了
如何正确评估和显示症状字段?
【问题讨论】:
-
您使用的是哪个版本的 TFS?您使用 CMMI 流程模板吗?我检查了我的 TFS 2015.3,只有 Bug 工作项包含 CMMI 流程模板中的症状字段。你的意思是你想用 TFS api 获取这个字段吗?
-
你能不能分享你的代码?
-
@Cece-MSFT ,这正是问题所在,对于任何不是“错误”工作项的工作项,没有症状字段 - 所以我不能直接绑定该字段,它会抛出一个错误。我需要在它存在时绑定它,但我很难在 html 页面中这样做
-
@Eddie-MSFT ,嗯,这正是我发布的内容。通过代码(.cs / pagebehind),我可以很好地获取第一个代码块中显示的字段,在页面中,我无法评估该字段是否存在-它会引发错误->查看第二个代码块跨度>