0
我有一個自定義頁面具有以下ListFieldIterator:當ControlMode = Display時,如何將ListFieldIterator指向子站點?
<SharePoint:ListFieldIterator runat="server" ControlMode="Display" OnInit="listFieldIterator_Init" />
這裏是Init事件:
protected void listFieldIterator_Init(object sender, EventArgs e)
{
ListFieldIterator listFieldIterator = sender as ListFieldIterator;
SPContext current = SPContext.Current;
SPFieldUrlValue value = new SPFieldUrlValue(current.ListItem[SPBuiltInFieldId.URL].ToString());
Uri uri = new Uri(value.Url);
using (SPWeb web = current.Site.OpenWeb(uri.AbsolutePath))
{
SPListItem item = web.GetListItem(uri.PathAndQuery);
if (null != item)
{
listFieldIterator.ItemContext = SPContext.GetContext(this.Context, item.ID, item.ParentList.ID, web);
}
}
}
一切都很正常,如果目標列表項在同一站點的頁面。但是,一旦它指向不同的網站,所有的領域出現,但值都出現在以下格式:
無法呈現「標題」列 ,因爲一個錯誤的「單 行文字「字段類型控制。請參閱日誌中的 詳細信息。異常消息: 列表不存在您選擇的頁面 包含不存在 的列表。它可能已被 其他用戶刪除..
如果我將ControlMode更改爲Edit,則值正確顯示。那麼如何在顯示模式下使其工作?
保存了很多努力:) – 2012-11-23 08:41:17