У меня есть кусок C#, который выглядит следующим образом:Понимание лексемы в 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? 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 части. Этот вопрос на самом деле здесь, но я не получал никаких сообщений, отправляющих ВСЕ информацию.
https://sharepoint.stackexchange.com/questions/148776/group-by-fields-displayed-in-a-custom-web-part
Я считаю, что я должен быть добавив некоторые из этих групп по тэгам где-то в макете, но я не знаю, где.
Спасибо за помощь всем.
Это поможет, если вы покажете нам содержимое 'layoutHTML'. –
Здесь нет магии. Это полностью нормальная замена строк. – usr
layoutHTML - это своего рода шаблон, содержащий '%% TAGS %%', которые заменяются значениями из rollUpItem. Это общая схема/метод для заполнения значений в шаблоне, но реализованный таким образом неэффективен ... вы должны анализировать один символ за раз и заменять '%% TAGS %%', как вы их находите, тогда вы только Пройдите макетHTML один раз. –