表单附件显示问题

原文:http://www.cnblogs.com/lrforever/archive/2010/02/10/1667129.html

关于sharepoint显示附件的问题:

1、在 Sharepoint Desinger里拷贝列表的DispForm.aspx.重命名为DispForm1.aspx;

2、在DispForm1.aspx添加该列表的数据视图;

3、在dvt_1.rowview XSL template添加附件的地方加上      <SharePoint:AttachmentsField ControlMode="Display" FieldName="Attachments" runat="server" Visible="true"/>

4、测试可以正常显示

but

如果在同一网站集的其他站点引用此列表,建立此列表的数据视图,采用同上的办法却会报错

System.InvalidOperationException: 对象的当前状态使该操作无效,实在搞不懂啥问题。

希望高手能现身,指点一下。多谢啦

  

2009年2月24日更新内容如下:

        上述的方法在跨站点的时候没法使用 ,但为了解决这个问题,采用了编写用户控件的方法。

代码如下

代码
复制代码
using Microsoft.SharePoint;
publicpartialclass UCAttachment : System.Web.UI.UserControl {     protectedvoid Page_Load(object sender, EventArgs e)     {         if (!this.IsPostBack)         {             try             {                 GetAttachment();//取得附件的方法             }             catch (Exception ex)             {                 Response.Write(ex);             }         }
    }    
privatevoid GetAttachment()     {         int ID =0;//取得页面参数        string id=Request.QueryString["ID"];         int.TryParse(id,out ID);//转化为int型        if(ID==0)         {             Response.Write("无效ID");         }         else         {             SPSite site =new SPSite("http://x.x.x.x/");
            SPWeb Myweb
= site.OpenWeb("myweb");             SPList StartStepList = Myweb.Lists["mylist"];//打开列表
            SPListItem StartStepItem
= StartStepList.Items.GetItemById(ID);//取得当前信息条记录             SPAttachmentCollection attach = StartStepItem.Attachments;//取得当前信息条的附件            if (attach.Count >0)             {                 Label1.Text ="附件:";                 for (int i =0; i < attach.Count; i++)                 {                     String url = attach.UrlPrefix + attach[i];
                    ListItem li
=new ListItem(attach[i], url);
                    BulletedList1.Items.Add(li);                 }             }         }     } }
 
原文地址:https://www.cnblogs.com/liubinurl/p/2595373.html