Хорошо, я нашел решение, которое не так элегантно, но оно работает.
После неудачных попыток различных методов манипулирования свойством ParameterBindings я подумал о том, как получить динамическое значение, используя атрибут Location.
Атрибут ParameterBinding
Location
указывает, откуда получить значение. Такие статьи, как это подсказки опции "Control ()". Таким образом, изменив привязку параметра к:
<ParameterBinding
Name="HttpHost"
Location="Control(MyHttpHost, Text)"
DefaultValue="" />
и добавление следующего кода на мою страницу:
<asp:TextBox ID="MyHttpHost" runat="server" Visible="false" />
<script runat="server">
protected void Page_Load()
{
MyHttpHost.Text =
SPContext.Current.Site.Url.Replace(SPContext.Current.Site.ServerRelativeUrl, "");
}
</script>
... на самом деле сделал трюк!
Чтобы получить значения параметров из прилагаемого XSL-файла, я поместил элементы param в корневой элемент. Атрибут имени параметра должен соответствовать атрибуту ParameterBinding
:
<xsl:stylesheet ...>
...
<xsl:param name="HttpHost"/>
На этот параметр можно ссылаться как на любую другую переменную XSL.