Динамическая настройка ListId в элементе управления <SharePoint: ListView> - PullRequest
0 голосов
/ 22 октября 2009

Есть ли способ динамически установить поле ListId в элементе управления ListView. Мы не можем гарантировать, что интересующий нас список имеет согласованный идентификатор GUID между установками (список развернут как часть шаблона сайта, который мы не контролируем). Я пытался использовать событие PreInit для установки переменной (см. Раздел list guid:. Если я удаляю тег ListView, я вижу правильный GUID, распечатанный. Поэтому я правильно собираю GUID. Однако, ошибки управления listview со следующим сообщением «Guid должен содержать 32 цифры с 4 штрихами». Это говорит мне, что тег не получает набор переменных. Это правильно? Есть ли другой способ указать список для использования?

Можно ли это сделать?

Пример кода следующий:

<%@ Register TagPrefix="Sharepoint" ...details deleted.. %>
<br>
...stuff deleted.
<br>
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> 
  ... more stuff deleted...
  <p>list guid: <%=ListGuid %>    
  <Sharepoint:ListView ListId="<%=ListGuid %>" Enabled="true" runat="server" />
  <p>
</asp:Content>



<script runat="server">
string ListGuid = string.Empty;

protected void Page_PreInit(object sender, EventArgs e)
{

  SPSite Site = SPContext.Current.Site;
  using (SPWeb HelpDesk = Site.OpenWeb("HelpDesk"))
  {
    SPList list = HelpDesk.Lists["Charge Numbers"];
    ListGuid = list.ID.ToString();
  }

}

</script>

Ответы [ 2 ]

0 голосов
/ 25 октября 2009

Наличие серверного кода, как вы делаете, который вставляется в больше серверного кода, немного странно и, похоже, вряд ли будет работать. Что говорит журнал SharePoint об идентификаторе списка, который он пытается загрузить? Я предполагаю, что он на самом деле не пытается загрузить список, представленный GUID, который вы устанавливаете в переменной ListGuid.

Вместо того, чтобы пытаться заставить некоторую глобальную переменную ListGuid иметь правильный guid, почему бы просто не установить свойство ListId элемента управления внутри обработчика событий Load страницы приложения?

В файле aspx:

<SharePoint:ListView Id="lv" runat="server" />

В коде страницы приложения:

protected ListView lv

В событии Load:

SPList list = HelpDesk.Lists["Charge Numbers"];
Guid myguid = list.ID;
lv.ListId = myguid.ToString();
0 голосов
/ 25 октября 2009

Я думаю, что сообщение об ошибке, которое вы получаете, говорит вам, что происходит не так ... ToString () преобразует GUID в недопустимый формат. Перегрузка для tostring

list.ID.ToString("N");
list.ID.ToString("D"); (this is the default)
list.ID.ToString("B");
list.ID.ToString("P");

... Попробуй их все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...