GridView选择记录同时confirm用户确认删除

  用户户操作删除记录之前给用户一个确认是否删除的提示。一般情况之下,一条记录一条记录删除是没有问题的。但是,如遇到可以多选,如果用户没有选择记录,直接去点删除铵钮,它会首先提示删除前的确认信息,再提示用户没有选择想要删除的记录。

  Insus.NET想实现的是,把它的顺序调换一下,首先判断用户是否有选择记录,如果没有,提示用户选择记录,一旦有选择记录时,才提示删除前确认信息。

  下面实例,将是GridView第一例放置一个CheckBox,让用户多选记录,然后在Gridview外放一个Delete铵钮。

  演示:http://www.glzy8.com/article/33564.htm

  xxx.aspx:

  

复制代码 代码如下:

  <asp:Button ID="ButtonDelete" Text="Delete" runat="Server" OnClick="ButtonDelete_Click"

  CausesValidation="false" />

  <asp:GridView ID="GvCutterType" runat="server" DataKeyNames="CutterTypeId" AutoGenerateColumns="false">

  <Columns>

  <asp:TemplateField>

  <ItemStyle BorderWidth="1" BorderColor="#c0c0c0" Width="1%" />

  <ItemTemplate>

  <asp:CheckBox ID="CheckBox1" runat="server" onclick="Javascript:changeRowBgColor(this)" />

  </ItemTemplate>

  </asp:TemplateField>

  <!--

  other column templateField

  -->

  </Columns>

  </asp:GridView>

  xxx.aspx.cs:

  

复制代码 代码如下:

  protected void Page_Load(object sender, EventArgs e)

  {

  this.ButtonDelete.Attributes.Add("onclick", "return ConfirmOnDelete();");

  }

  protected void ButtonDelete_Click(object sender, EventArgs e)

  {

  //do delete something

  }

  Javascript:

  

复制代码 代码如下:

  function ConfirmOnDelete() {

  if (document.getElementById("<%= GvCutterType.ClientID %>") == null) {

  return false;

  }

  var objgv = document.getElementById("<%= GvCutterType.ClientID %>");

  var rc = objgv.rows.length;

  var y = 0;

  for (var i = 0; i < rc; i++) {

  var getInput = objgv.rows[i].cells[0].getElementsByTagName("input");

  if (getInput[0].type == "checkbox") {

  if (getInput[0].checked) {

  y = y + 1;

  }

  }

  }

  if (y <= 0) {

  alert("首先选择想要删除的记录。");

  return false;

  }

  if (confirm("以下选择的记录将被删除。") == true)

  return true;

  else

  return false;

  }