我有一块看起来像这样的C#:
public static string PopulateLayoutHTML(string layoutHTML, RollupItem rollupItem, WebPartSettings settings, int itemIndex, string lastGroupByValue)
{
layoutHTML = layoutHTML.Replace("%%ITEM_INDEX%%", itemIndex.ToString());
layoutHTML = layoutHTML.Replace("%%TITLE%%", rollupItem.Title);
layoutHTML = layoutHTML.Replace("%%SUBTITLE%%", rollupItem.Subtitle);
layoutHTML = layoutHTML.Replace("%%DESCRIPTION%%", StripDivTags(rollupItem.Description));
layoutHTML = layoutHTML.Replace("%%AUTHOR%%", rollupItem.Author);
if (!rollupItem.GroupByValue.IsNullOrEmpty() && rollupItem.GroupByValue != lastGroupByValue && layoutHTML.Contains("%%GROUPBY%%"))
{
layoutHTML = layoutHTML.Replace("%%BEGIN_GROUPBY%%", "").Replace("%%END_GROUPBY%%", "").Replace("%%GROUPBY%%", rollupItem.GroupByValue);
}
else if (layoutHTML.Contains("%%BEGIN_GROUPBY%%"))
{
int startIndex = layoutHTML.IndexOf("%%BEGIN_GROUPBY%%");
int endIndex = layoutHTML.IndexOf("%%END_GROUPBY%%") + 15;
try
{
string groupBySubstring = layoutHTML.Substring(startIndex, endIndex - startIndex);
layoutHTML = layoutHTML.Replace(groupBySubstring, "");
}
catch
{
}
}
else
{
layoutHTML = layoutHTML.Replace("%%GROUPBY%%", "");
}
有人可以解释%%这些%%的所有名称是什么以及代码在做什么?这些%%标签%%怎么可能与基于HTML的前端UI交互? HTML也引用它们。
这是代码引用的layouthtml:
<div style="border-bottom:solid 1px #009581; padding:5px; margin-right:10px;">
<div style="width:100%; height:25px; margin:2px 0 0; width:100%; padding-bottom:5px;">
<!--accordion head start-->
<div style="float:left;">
<a href="javascript:showTaxRollupItem('%%ITEM_INDEX%%');" id="taxRollupExpand_%%ITEM_INDEX%%" style="display:inline;"><img border="0" src="/Style%20Library/Rollup%20Web%20Part%20Files/images/icnAdd.png"></a>
<a href="javascript:hideTaxRollupItem('%%ITEM_INDEX%%');" id="taxRollupContract_%%ITEM_INDEX%%" style="display:none;"><img border="0" src="/Style%20Library/Rollup%20Web%20Part%20Files/images/icnSubtract.png"></a>
</div>
<div style="float:left; width:95%; padding-left:5px">
%%BEGIN_LINKTAG%% style="color:#005293; font-size:12px; text-decoration:none; cursor:pointer;"
%%CLOSE_LINKTAG%%%%TITLE%%%%END_LINKTAG%% (%%MODIFIEDDATE%%)%%SECURITY_ICON%%
</div>
</div><!--accordion head end-->
<div id="taxRollupDesc_%%ITEM_INDEX%%" style="margin:3px 0 10px 0; display:none;">
<!--accordion content start-->
<p style="margin:3px 0 10px 15px; font-size:12px;">
%%DESCRIPTION%%
</p>
</div><!--accordion content end-->
</div>
我实际上要做的是在SharePoint显示Web部件中对某些字段进行分组。这个问题实际上就在这里,但我没有得到任何回复所有信息。
https://sharepoint.stackexchange.com/questions/148776/group-by-fields-displayed-in-a-custom-web-part
我相信我应该在布局的某处添加一些标签,但我不确定在哪里。
感谢大家的帮助。
答案 0 :(得分:2)
这些是简单的字符串标记替换。服务器在字符串中使用HTML模板,只需用rollupItem对象中提供的值替换其中的各种标记。
就HTML和C#而言,%%意味着什么 - 开发人员正在使用它,因为%%通常不会存在于HTML文档的任何位置。
例如,如果他们使用TITLE
作为令牌,而不是%%TITLE%%
,那么HTML可能包含单词TITLE,而且会被错误地替换