0
  $(function ()
  {
      $("#dialog-confirm").dialog(
      {
          autoOpen: false,
          resizable: false,
          height: 240,
          modal: true,

           buttons: {
              "Delete": function ()
              {
                  $(this).dialog("close");
                  return true;

              },
              Cancel: function ()
              {
                  $(this).dialog("close");
                  return false;
              }
          },
          close: function() {
            ;
            }
      });
  });

  function ShowDeleteConfirmation()
  {
      var activeEmelent = document.activeElement;
      if (activeEmelent.innerHTML == 'Delete')
      {
        $('#dialog-confirm').dialog('open');
        return false;
      }
  }

//aspx代码

<asp:LinkButton ID="lbDelete" runat="server" Text="Delete" CssClass="wecc-grid-link" data-cmd="delete" OnClick="Delete_Click" OnClientClick=" return ShowDeleteConfirmation();"  ></asp:LinkButton> 

//服务器端事件

protected void Delete_Click(object sender, EventArgs e)
    {
        _deleteClicked = true;
        LinkButton lb = sender as LinkButton;
        GridViewRow row = lb.Parent.NamingContainer as GridViewRow;

        if (row.RowState != (DataControlRowState.Selected | DataControlRowState.Edit) &&
           row.RowState != (DataControlRowState.Alternate | DataControlRowState.Selected | DataControlRowState.Edit))
        {
            Delete(row);
        }
        else
        {
            SetRowState(row.RowIndex, DataControlRowState.Normal);
        }

        gvSaveState.DataSource = this.Data;
        gvSaveState.AllowSorting = true;

        gvSaveState.DataBind();
        lbAddItem.Visible = true;
        lbRefreshData.Visible = true;

    }

当我单击网格视图中的删除链接按钮时,会弹出对话框。但是,单击对话框中的删除按钮后,它不会触发我的服务器端单击事件。单击删除时,我确实返回了一个值“true”。

在这里感谢您的帮助。

4

3 回答 3

1

jQuery 对话框本质上是异步的。标准的 confirm() 函数会阻止执行,直到返回结果。jQuery 对话框不会停止执行,因此 showDeleteConfirmation() 总是返回 false,并且您的 jQuery 按钮将它们的值返回为空。如果你想使用 jQuery 对话框,你的删除按钮的功能将需要有提交表单的代码,可能通过在隐藏字段中放置一些 ID 并在隐藏按钮上调用 click()。

于 2013-04-10T18:04:20.890 回答
0

该对话框阻止了默认操作的发生,因此您需要在对话框中提交或执行该操作Delete按钮功能中提交或执行动作。

所以返回falsetrue不做你所期望的。

您需要为此添加更多内容(AJAX 发送到服务器或类似的东西)

"Delete": function ()
              {
                  <add call to function to send data to server>
                  $(this).dialog("close");
              },
于 2013-04-10T18:00:55.763 回答
0

请将删除按钮更改为 Confirm 。

使用此代码"Confirm": function () 而不是"Delete": function ()

于 2013-04-10T18:04:35.207 回答