如何删除自定义页面中的列表项?

时间:2014-02-26 18:17:27

标签: javascript sharepoint sharepoint-2010

我有一个自定义的仪表板页面(Dashboard.aspx) - 它不在列表中,而是在Pages文件夹中。

我创建了此仪表板来替换SharePoint的默认“AllItems.aspx”。

但是,我无法从SharePoint默认列表视图中复制“删除项目”的onClick事件。

任何人都可以提供有关如何从自定义页面中删除列表项的代码段吗?

Trying to delete this list item with the ID 180.

P.S。:我的自定义页面已经有ID和列表名称。感谢您的回复!

2 个答案:

答案 0 :(得分:1)

Microsoft提供的功能就是这个:

function DeleteListItem() {
  ULSrLq: ;
  if (!IsContextSet()) return;
  var b = currentCtx,
      e = currentItemID,
      g = currentItemFSObjType,
      c = L_STSRecycleConfirm_Text;
  if (!b.RecycleBinEnabled || b.ExternalDataList) c = L_STSDelConfirm_Text;
  if (b.HasRelatedCascadeLists && b.CascadeDeleteWarningMessage != null) c = b.CascadeDeleteWarningMessage + c;
  if (confirm(c)) {
      var h = L_Notification_Delete,
          f = addNotification(h, true),
          a = b.clvp;
      if (b.ExternalDataList && a != null) {
          a.DeleteItemCore(e, g, false);
          a.pendingItems = [];
          a.cctx.executeQueryAsync(function () {
              ULSrLq: ;
              if (typeof a.rgehs != "undefined") {
                  if (a.rgehs.length == 1 && a.rgehs[0].get_serverErrorCode() == SP.ClientErrorCodes.redirect) {
                      GoToPage(a.rgehs[0].get_serverErrorValue());
                      return
                  }
                  removeNotification(f);
                  a.ShowErrorDialog(RefreshOnDialogClose)
              } else RefreshPage(SP.UI.DialogResult.OK)
          }, function () {
              ULSrLq: ;
              removeNotification(f);
              typeof a.rgehs != "undefined" && a.ShowErrorDialog()
          })
      } else {
          var d = b.HttpPath + "&Cmd=Delete&List=" + b.listName + "&ID=" + e + "&NextUsing=" + GetSource();
          if (null != currentItemContentTypeId) d += "&ContentTypeId=" + currentItemContentTypeId;
          SubmitFormPost(d)
      }
  }
}

有了这个,你应该能够找到你需要的东西。

如果您在页面中使用了一些jQuery / JavaScript,您可能还需要检查提供一些有用功能的SharepointPlus(例如从列表中获取数据或删除项目)。

答案 1 :(得分:0)

我明白了!

我有一个名为“SPAPI_Lists”的JS库,我相信它来自SharePoint Services。

它提供了一个名为quickDeleteListItem(listName, listItemId)的函数。

代码如下所示:

var urlThatContainsList = 'http://www.samplesite.com/sample';
var listName = 'Sample List';
var listItemId = 3;
new SPAPI_Lists(urlThatContainsList).quickDeleteListItem(listName, listItemId);