我有一个自定义页面,其中包含以下内容
ListFieldIterator
:
<SharePoint:ListFieldIterator runat="server" ControlMode="Display" OnInit="listFieldIterator_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);
}
}
}
如果目标列表项与页面位于同一个站点,则一切工作正常。但一旦它指向不同的站点,所有字段都会显示,但所有值都以以下格式显示:
未能呈现“标题”列
因为“单曲”中的一个错误
“文本行”字段类型控件。见
日志中的详细信息。异常消息:
列表不存在您的页面
所选内容包含一个不包含
存在。可能已被删除
其他用户..
如果我将控制模式更改为编辑,值将正确显示。那么,在显示模式下如何让它工作呢?