//下面代码中的主要是为了将数据绑定到repeater上,同时实现文件的下载,其中dr[3]中的路径绑定的是下载路径,用到了sharepoint中自带的download.aspx下载页面,只要将文件的URL赋值给sourceurl便可,可是我前台用的是<a>标签的href来导向下载页面的,若是你的文件名是中文命名,并且路径是在后台传的值,在前台的进行的连接,那么若是你用的是IE浏览器,那么下载时就没法成功,由于IE没法将路径进行编码,下载页面没法识别中文名,因此这时就必须先编码再连接,以下面的带有下滑线的代码,就是编码的过程。
if (files != null)
{
foreach (SPFile file in files)
{
DataRow dr = dt.NewRow();
if (file.Item["IsShow"].ToString() == "True"&&file.Item["_ModerationStatus"].ToString() == "0")
{
dr[0] = "_layouts/images/" + file.IconUrl;
dr[1] = file.Name;
dr[2] = BussinessUtil.getDownloadType(file);
string fileUrl = file.Url; string sourceUrl = fileUrl.Substring(0, fileUrl.LastIndexOf("/")+1) + HttpUtility.UrlEncode(fileUrl.Substring(fileUrl.LastIndexOf("/") + 1));//主要是对中文路径编码
dr[3] = SPContext.Current.Web.Url + "/_layouts/15/download.aspx?sourceurl=" + sourceUrl;
dr[4] = file.TimeCreated.ToShortDateString();
dr[5] = file.UniqueId;
dt.Rows.Add(dr);
}
}
}但愿对您有所帮助!