首先判断是否有选择记录,再confirm用户确认删除

用户操作删除记录之前给用户一个确认是否删除的提示。一般情况之下,一条记录一条记录删除是没有问题的。但是,如遇到可以多选,如果用户没有选择记录,直接去点删除铵钮,它会首先提示删除前的确认信息,再提示用户没有选择想要删除的记录。
Insus.NET想实现的是,把它的顺序调换一下,首先判断用户是否有选择记录,如果没有,提示用户选择记录,一旦有选择记录时,才提示删除前确认信息。

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

演示:http://www.cnblogs.com/insus/archive/2011/10/27/2226703.html

 

xxx.aspx:

View Code
 <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:

View Code
 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:

View Code
 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;
        }

 

posted @ 2011-10-28 11:21  Insus.NET  阅读(...)  评论(...编辑  收藏