Here I am going to share with you a very small things but I think it’s very helpful. SharePoint Web Controls provides set of controls which we can use for generating our custom pages very easily without writing much custom code, there is control called “ListFieldIterator”, in which we need to specify which SharePoint List we are going to bind with controls and it will generate all controls related to SharePoint List.
In ListFieldIterator control if we want to exclude some fields from generated control, then we can use ListFieldIterator.ExcludeFields property, but when we have multiple fields for exclusion then we need to separate the fields with a semicolon and pound sign ";#" as separator, for single field we are using "." as separator.
SharePoint Web Controls rocks !!!
Showing posts with label Sharepoint List. Show all posts
Showing posts with label Sharepoint List. Show all posts
Friday, August 21, 2009
How to exclude fields from SharePoint ListFieldIterator Control
Labels:
exclude some fields,
How to exclude fields from SharePoint ListFieldIterator Control,
ListFieldIterator,
ListFieldIterator and ExcludeFields Property - Separator,
ListFieldIterator.ExcludeFields,
multiple fields for exclusion in ListFieldIterator,
semicolon and pound sign,
Sharepoint,
Sharepoint List,
SharePoint ListFieldIterator Control,
SharePoint Web Controls
Saturday, August 8, 2009
How to attach/delete/upload files to SharePoint List Item using Object Model
Hello Friends
I have one requirement in which I need to develop a web part in which users can upload multiple documents to SharePoint List Item and they can see all uploaded files into data grid control, they also need facility for user to delete selected files, add new files from same control and also they can download files.
Here in this post, I am writing code for each functionality as per my requirements.
Snippet code of deleting attachment from SharePoint list item :
private void DeleteAttachment(int NodeID, String strFileName)
{
try
{
SPContext.Current.Web.AllowUnsafeUpdates = true;
SPListItem delItem = lstAudit.GetItemById(NodeID);
SPAttachmentCollection atCol = delItem.Attachments;
foreach (string strDelfileName in atCol)
{
if (strDelfileName == strFileName)
{
atCol.Delete(strDelfileName);
delItem.Update();
lstAudit.Update();
return;
}
}
}
catch (Exception eDel)
{
string errDel = eDel.Message;
}
}
Snippet code for downloading attachment from SharePoint List Item :
private void DownloadAttachment(string FileName)
{
try
{
string AttachmentURL = string.Empty;
AttachmentURL = FileName;
string strName = AttachmentURL.Substring(AttachmentURL.LastIndexOf("/") + 1);
string sbURL = AttachmentURL.Trim();
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
Response.AppendHeader("Content-disposition", "attachment; filename=" + strName);
Response.AppendHeader("Pragma", "cache");
Response.AppendHeader("Cache-control", "private");
Response.WriteFile(sbURL);
Response.End();
}
catch (Exception eDwn)
{
Response.Write(eDwn.Message);
}
}
Snippet code of uploading document to SharePoint List Item :
protected void btnUpload_Click(object sender, EventArgs e)
{
try
{
string fileName = "";
string strExtensionName = "";
fileName = System.IO.Path.GetFileName(FileUpload.PostedFile.FileName);
if (fileName != "")
{
strExtensionName = fileName.Substring(fileName.IndexOf(".") + 1);
if (strExtensionName.Equals("webpart") || strExtensionName.Equals("dll") || strExtensionName.Equals("bat") || strExtensionName.Equals("exe"))
{
lblMessage.Visible = true;
lblMessage.Text = "Invalid fileName!!";
}
else
{
string _fileTime = DateTime.Now.ToFileTime().ToString();
string _fileorgPath = System.IO.Path.GetFullPath(FileUpload.PostedFile.FileName);
if (txtFileName.Text.Trim().Length > 0)
{
fileName = fileName.Replace(fileName.Substring(fileName.LastIndexOf("\\") + 1), txtFileName.Text) + "." + strExtensionName;
}
string _newfilePath = _fileTime + "~" + fileName;
string tempFolder = Environment.GetEnvironmentVariable("TEMP");
string _filepath = tempFolder + _newfilePath;
FileUpload.PostedFile.SaveAs(_filepath);
AddRow(fileName, _filepath, 0, true);
}
}
else
{
lblMessage.Visible = true;
lblMessage.Text = "Please Selct file Name";
}
}
catch (Exception Ex)
{
Response.Write(Ex.Message);
}
}
protected void dgdUpload_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int recordToDelete = e.RowIndex;
//dt = (DataTable)Page.Session["Files"];
dt = (DataTable)ViewState["Files"];
int cn = dt.Rows.Count;
if (Convert.ToInt32(dt.Rows[recordToDelete].ItemArray[0]) != 0)
{
DeleteAttachment(Convert.ToInt32(dt.Rows[recordToDelete].ItemArray[0]), dt.Rows[recordToDelete].ItemArray[1].ToString());
}
dt.Rows.RemoveAt(recordToDelete);
dt.AcceptChanges();
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
dgdUpload.DataSource = dt;
dgdUpload.DataBind();
}
private void AddMoreColumns()
{
dt = new DataTable("Files");
dc = new DataColumn("ID", Type.GetType("System.Int16"));
dt.Columns.Add(dc);
dc = new DataColumn("FileName", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("FilePath", Type.GetType("System.String"));
dt.Columns.Add(dc);
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
}
private void AddRow(string file, string path, int ID, Boolean bolCheckForfiles)
{
Boolean bolAddRow = true;
//dt = (DataTable)Page.Session["Files"];
dt = (DataTable)ViewState["Files"];
if (dt == null)
{
AddMoreColumns();
}
if (bolCheckForfiles)
{
if (dt.Rows.Count > 0)
{
foreach (DataRow drExistingrow in dt.Rows)
{
if (drExistingrow["FileName"].ToString() == file)
{
bolAddRow = false;
}
}
}
}
if (bolAddRow)
{
dr = dt.NewRow();
dr["ID"] = ID;
dr["FileName"] = file;
dr["FilePath"] = path;
dt.Rows.Add(dr);
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
dgdUpload.DataSource = dt;
dgdUpload.DataBind();//bind in grid
}
else
{
lblMessage.Visible = true;
lblMessage.Text = "Same File Name already exists!!!";
}
}
protected void dgdUpload_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "View")
{
string file = e.CommandArgument.ToString();
DownloadAttachment(file);
}
}
if (dt != null)
{
int _dtcnt = dt.Rows.Count;
foreach (DataRow dr in dt.Rows)
{
Boolean bolAddAttachment = true;
fileName = dr["FileName"].ToString();
if (itmCorrectiveActionFinding.Attachments.Count > 0)
{
foreach (string strAttachedname in itmCorrectiveActionFinding.Attachments)
{
if (fileName == strAttachedname)
{
bolAddAttachment = false;
}
}
}
if (bolAddAttachment)
{
string strFilepath = dr["FilePath"].ToString();
StreamReader sr = new StreamReader(strFilepath);
Stream fStream = sr.BaseStream;
contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
itmCorrectiveActionFinding.Attachments.Add(fileName, contents);
itmCorrectiveActionFinding.Update();
lstCorrectiveActionFinding.Update();
SPContext.Current.Web.Update();
System.IO.File.Delete(strFilepath);
}
}
}
I have one requirement in which I need to develop a web part in which users can upload multiple documents to SharePoint List Item and they can see all uploaded files into data grid control, they also need facility for user to delete selected files, add new files from same control and also they can download files.
Here in this post, I am writing code for each functionality as per my requirements.
Snippet code of deleting attachment from SharePoint list item :
private void DeleteAttachment(int NodeID, String strFileName)
{
try
{
SPContext.Current.Web.AllowUnsafeUpdates = true;
SPListItem delItem = lstAudit.GetItemById(NodeID);
SPAttachmentCollection atCol = delItem.Attachments;
foreach (string strDelfileName in atCol)
{
if (strDelfileName == strFileName)
{
atCol.Delete(strDelfileName);
delItem.Update();
lstAudit.Update();
return;
}
}
}
catch (Exception eDel)
{
string errDel = eDel.Message;
}
}
Snippet code for downloading attachment from SharePoint List Item :
private void DownloadAttachment(string FileName)
{
try
{
string AttachmentURL = string.Empty;
AttachmentURL = FileName;
string strName = AttachmentURL.Substring(AttachmentURL.LastIndexOf("/") + 1);
string sbURL = AttachmentURL.Trim();
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
Response.AppendHeader("Content-disposition", "attachment; filename=" + strName);
Response.AppendHeader("Pragma", "cache");
Response.AppendHeader("Cache-control", "private");
Response.WriteFile(sbURL);
Response.End();
}
catch (Exception eDwn)
{
Response.Write(eDwn.Message);
}
}
Snippet code of uploading document to SharePoint List Item :
protected void btnUpload_Click(object sender, EventArgs e)
{
try
{
string fileName = "";
string strExtensionName = "";
fileName = System.IO.Path.GetFileName(FileUpload.PostedFile.FileName);
if (fileName != "")
{
strExtensionName = fileName.Substring(fileName.IndexOf(".") + 1);
if (strExtensionName.Equals("webpart") || strExtensionName.Equals("dll") || strExtensionName.Equals("bat") || strExtensionName.Equals("exe"))
{
lblMessage.Visible = true;
lblMessage.Text = "Invalid fileName!!";
}
else
{
string _fileTime = DateTime.Now.ToFileTime().ToString();
string _fileorgPath = System.IO.Path.GetFullPath(FileUpload.PostedFile.FileName);
if (txtFileName.Text.Trim().Length > 0)
{
fileName = fileName.Replace(fileName.Substring(fileName.LastIndexOf("\\") + 1), txtFileName.Text) + "." + strExtensionName;
}
string _newfilePath = _fileTime + "~" + fileName;
string tempFolder = Environment.GetEnvironmentVariable("TEMP");
string _filepath = tempFolder + _newfilePath;
FileUpload.PostedFile.SaveAs(_filepath);
AddRow(fileName, _filepath, 0, true);
}
}
else
{
lblMessage.Visible = true;
lblMessage.Text = "Please Selct file Name";
}
}
catch (Exception Ex)
{
Response.Write(Ex.Message);
}
}
protected void dgdUpload_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int recordToDelete = e.RowIndex;
//dt = (DataTable)Page.Session["Files"];
dt = (DataTable)ViewState["Files"];
int cn = dt.Rows.Count;
if (Convert.ToInt32(dt.Rows[recordToDelete].ItemArray[0]) != 0)
{
DeleteAttachment(Convert.ToInt32(dt.Rows[recordToDelete].ItemArray[0]), dt.Rows[recordToDelete].ItemArray[1].ToString());
}
dt.Rows.RemoveAt(recordToDelete);
dt.AcceptChanges();
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
dgdUpload.DataSource = dt;
dgdUpload.DataBind();
}
private void AddMoreColumns()
{
dt = new DataTable("Files");
dc = new DataColumn("ID", Type.GetType("System.Int16"));
dt.Columns.Add(dc);
dc = new DataColumn("FileName", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("FilePath", Type.GetType("System.String"));
dt.Columns.Add(dc);
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
}
private void AddRow(string file, string path, int ID, Boolean bolCheckForfiles)
{
Boolean bolAddRow = true;
//dt = (DataTable)Page.Session["Files"];
dt = (DataTable)ViewState["Files"];
if (dt == null)
{
AddMoreColumns();
}
if (bolCheckForfiles)
{
if (dt.Rows.Count > 0)
{
foreach (DataRow drExistingrow in dt.Rows)
{
if (drExistingrow["FileName"].ToString() == file)
{
bolAddRow = false;
}
}
}
}
if (bolAddRow)
{
dr = dt.NewRow();
dr["ID"] = ID;
dr["FileName"] = file;
dr["FilePath"] = path;
dt.Rows.Add(dr);
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
dgdUpload.DataSource = dt;
dgdUpload.DataBind();//bind in grid
}
else
{
lblMessage.Visible = true;
lblMessage.Text = "Same File Name already exists!!!";
}
}
protected void dgdUpload_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "View")
{
string file = e.CommandArgument.ToString();
DownloadAttachment(file);
}
}
if (dt != null)
{
int _dtcnt = dt.Rows.Count;
foreach (DataRow dr in dt.Rows)
{
Boolean bolAddAttachment = true;
fileName = dr["FileName"].ToString();
if (itmCorrectiveActionFinding.Attachments.Count > 0)
{
foreach (string strAttachedname in itmCorrectiveActionFinding.Attachments)
{
if (fileName == strAttachedname)
{
bolAddAttachment = false;
}
}
}
if (bolAddAttachment)
{
string strFilepath = dr["FilePath"].ToString();
StreamReader sr = new StreamReader(strFilepath);
Stream fStream = sr.BaseStream;
contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
itmCorrectiveActionFinding.Attachments.Add(fileName, contents);
itmCorrectiveActionFinding.Update();
lstCorrectiveActionFinding.Update();
SPContext.Current.Web.Update();
System.IO.File.Delete(strFilepath);
}
}
}
Labels:
Attach Files to Sharepoint List Item by ObjectModel,
attaching multiple files to SharePoint,
Datagird and Sharepoint upload files webpart,
Delete and download files to,
downloading of attached files from SharePoint,
Files Attached to Sharepoint List Item,
How to attach/delete/upload files to SharePoint List Item using Object Model,
MOSS 2007,
Object Model,
Sharepoint,
Sharepoint List,
SharePoint Object Model,
Sharepoint Upload,
Upload multiple Files to Sharepoint Files,
Upload Multiple Files to Sharepoint List,
uploading files to SharePoint
Subscribe to:
Posts (Atom)