Custom Web Part Code: Deleting an Item

So this works, but if anyone has any brighter ideas, I have open ears...  I was creating a document library web part and had to recreate some of the functionality in the menu...  So here is the way I delete and Item...

Declare and initialize a hidden field to store the id of the element to be deleted...  hfDeleteDoc

//Server Side Function (C#) 
private Boolean deleteDoc(int ID){
 try
 {
  if (msaListName != null && msaListName != "")
  {
   SPContext.Current.Web.Lists[msaListName].Items.DeleteItemById(ID);
  }
  return true;
 }
 catch
 {
  return false;
 }
}

//Server Side Code (C#) 
if (hfDeleteDoc.Value != "")
{
  int id = Convert.ToInt32(hfDeleteDoc.Value);
  deleteDoc(id);
  hfDeleteDoc.Value = "";
}

//Server Side Code (C#) Building a javascript function for your menutemplate 
string deleteDocFunction = "";
deleteDocFunction += "<script>\n";
deleteDocFunction += "function deleteDoc(docID){\n";
deleteDocFunction += "   var hfDeleteDoc = document.getElementById('" + hfDeleteDoc.ClientID + "');\n";
deleteDocFunction += "   hfDeleteDoc.value = docID;\n";
deleteDocFunction += "   document.forms[0].submit();\n";
deleteDocFunction += "}\n";
deleteDocFunction += "</script>\n";
writer.Write(deleteDocFunction);

//Server Side Code (C#) Creating a template for your menu
msaListMenu = new MenuTemplate();
msaListMenu.ID = "MSAListMenu";
MenuItemTemplate msaListMenuItem1 = new MenuItemTemplate("View Properties");
msaListMenuItem1.ClientOnClickNavigateUrl = SPContext.Current.Web.Url + "/MSA/Forms/DispForm.aspx?ID=%EDIT%";
msaListMenu.Controls.Add(msaListMenuItem1);
SPSite tmp = SPContext.Current.Site;
//SPGroup
//SPGroup tmpGrp = SPContext.Current.Web.SiteGroups["Content Managers"];
//tmpGrp.ContainsCurrentUser

MenuItemTemplate msaListMenuItem3 = new MenuItemTemplate("Edit Properties", "/_layouts/images/EDIT.GIF");
msaListMenuItem3.ClientOnClickNavigateUrl = SPContext.Current.Web.Url + "/MSA/Forms/EditForm.aspx?ID=%EDIT%";
msaListMenu.Controls.Add(msaListMenuItem3);

MenuItemTemplate msaListMenuItem4 = new MenuItemTemplate("Delete", "/_layouts/images/DELETE.GIF");
msaListMenuItem4.ClientOnClickScript = "deleteDoc(%EDIT%);";
//msaListMenuItem4.ClientOnClickNavigateUrl = SPContext.Current.Web.Url + "/MSA/Forms/EditForm.aspx?ID=%EDIT%";
msaListMenu.Controls.Add(msaListMenuItem4);

MenuItemTemplate msaListMenuItem2 = new MenuItemTemplate("Alert Me");
msaListMenuItem2.ClientOnClickNavigateUrl = SPContext.Current.Web.Url + "/_layouts/SubNew.aspx?List={49DFCC0E-E021-41F7-9978-1557E1A4B64A}&ID=%EDIT%";
msaListMenu.Controls.Add(msaListMenuItem2);


Posted on SharePoint Blogs Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks

Read the complete post at http://www.sharepointblogs.com/chadclarkesmossblog/archive/2007/09/26/custom-web-part-code-deleting-an-item.aspx

Published Wednesday, September 26, 2007 4:26 PM by SharePoint Blogs