Prasad Bolla's SharePoint Blog

Click Here to go through the Interesting posts within my Blog.

Click Here to go through the new posts in my blog.

Wednesday, January 23, 2013

Multiple Row Delete in GridView using SharePoint List Data



Output:-

Backend List:-

Ascx
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DMRGridViewUserControl.ascx.cs" Inherits="DMRGridView.DMRGridView.DMRGridViewUserControl" %>
<script type="text/javascript" language="javascript">
function DeleteConfirmation()
{
if (confirm("Are you sure, you want to delete selected records ?")==true)
   return true;
else
   return false;
}
</script>
<table align="center" bgcolor="navy">
<tr>
<td>
<span>
<asp:Button ID="btnCheckAll" runat="server" Text="Check All"
        onclick="btnCheckAll_Click" />
</span>
<span>
<asp:Button ID="btnUncheckAll" runat="server" Text="UnCheck All"
        onclick="btnUncheckAll_Click" />
</span>
<span>
<asp:Button ID="btnDelete" runat="server" Text="Delete" 
        OnClientClick="return DeleteConfirmation();" onclick="btnDelete_Click" /></span>
</td>
</tr>
<tr>
<td>
<asp:GridView ID="dgvMultipleRecordsDelete" runat="server"
    AutoGenerateColumns="False" DataKeyNames="ID" CellPadding="4"
    EnableModelValidation="True" ForeColor="#333333" GridLines="Both">
    <AlternatingRowStyle BackColor="White"  />
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="chkMultiple" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ItemID">
<ItemTemplate>
<asp:Label ID="lblItemID" runat="server" Text='<%# Eval("ID") %>'  />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Player Name" DataField="Title" />
<asp:BoundField HeaderText="Location" DataField="Location" />
</Columns>
    <EditRowStyle BackColor="#7C6F57" />
    <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="#E3EAEB" />
    <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>
</td>
</tr>
<tr>
<td bgcolor="white">
<asp:Label ID="lblMessage"  runat="server"></asp:Label>
</td>
</tr>
</table>
Ascx.cs
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using System.Security;
using System.Collections;

namespace DMRGridView.DMRGridView
{
    public partial class DMRGridViewUserControl : UserControl
    {
        string strListID = string.Empty;
        ArrayList ArrItem = new ArrayList();
        int count;
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
             
                    getData();
                             
            }
            catch (Exception Ex)
            {
                lblMessage.Text = Ex.ToString();
            }
        }
        public void getData()
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPWeb currentWeb = SPContext.Current.Web;
                    SPList lst = currentWeb.Lists["Players Location"];
                    strListID = lst.ID.ToString();
                    SPQuery sQuery = new SPQuery();
                    sQuery.Query = "<OrderBy><FieldRef Name='ID' /></OrderBy>";
                    SPListItemCollection myColl = lst.GetItems(sQuery);
                    count = myColl.Count;
                    if (myColl.Count > 0)
                    {
                        dgvMultipleRecordsDelete.DataSource = myColl.GetDataTable();
                        dgvMultipleRecordsDelete.DataBind();
                    }
                });
            }
            catch (Exception Ex)
            {
                lblMessage.Text = Ex.ToString();
            }
        }

        protected void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                CheckBox chkMultipleDelete;
                foreach (GridViewRow gi in dgvMultipleRecordsDelete.Rows)
                {
                    chkMultipleDelete = (CheckBox)gi.Cells[0].FindControl("chkMultiple");
                    if (chkMultipleDelete.Checked == true)
                    {
                        ArrItem.Add(dgvMultipleRecordsDelete.DataKeys[gi.RowIndex].Value);
                    }

                }
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPWeb currentWeb = SPContext.Current.Web;
                    SPList lst = currentWeb.Lists["Players Location"];
                    string strBatch = string.Empty;
                    strBatch += "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Batch>";
                    for (int i = 0; i < ArrItem.Count; i++)
                    {
                        strBatch += "<Method><SetList Scope=\"Request\">" + lst.ID + "</SetList><SetVar Name=\"ID\">" + ArrItem[i].ToString() + "</SetVar><SetVar Name=\"Cmd\">Delete</SetVar></Method>";
                    }
                    strBatch += "</Batch>";
                    string strProcessBatch = currentWeb.ProcessBatchData(strBatch);
                    getData();
                    if (count == 0)
                    {
                        Response.Redirect(currentWeb.Url + "/UserPages/Multiple Row Delete in GridView.aspx");
                    }
                });
                
            }
            catch (Exception Ex)
            {

                lblMessage.Text = Ex.ToString();
            }
        }

        protected void btnCheckAll_Click(object sender, EventArgs e)
        {
            try
            {
                CheckBox chkMultipleDelete;
                foreach (GridViewRow gi in dgvMultipleRecordsDelete.Rows)
                {
                    chkMultipleDelete = (CheckBox)gi.Cells[0].FindControl("chkMultiple");
                    chkMultipleDelete.Checked = true;
                }
            }
            catch (Exception Ex)
            {

                lblMessage.Text = Ex.ToString();
            }
        }

        protected void btnUncheckAll_Click(object sender, EventArgs e)
        {
            try
            {
                CheckBox chkMultipleDelete;
                foreach (GridViewRow gi in dgvMultipleRecordsDelete.Rows)
                {
                    chkMultipleDelete = (CheckBox)gi.Cells[0].FindControl("chkMultiple");
                    if (chkMultipleDelete.Checked == true)
                    {
                        chkMultipleDelete.Checked = false;
                    }
                }
            }
            catch (Exception Ex)
            {

                lblMessage.Text = Ex.ToString();
            }
        }
    }
}

No comments:

Post a Comment