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.

Tuesday, December 25, 2012

How to Build a Simple Progress Bar in Ap.Net GridView or SharePoint GridView using SharePoint Tasks List Data

Note:-
Do not worry about Input String was not in a correct format. Use Try Catch to avoid these error. This error will occur because of PercentComplete is the Number Type Column in the SharePoint Tasks List.


Aspx
<%@ 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="TestPBarUserControl.ascx.cs" Inherits="TestPBar.TestPBar.TestPBarUserControl" %>
<asp:GridView ID="dgvProgressBarSample" runat="server" CellPadding="4"
    EnableModelValidation="True" ForeColor="#333333" GridLines="Both" AutoGenerateColumns="false">
    <AlternatingRowStyle BackColor="White" />
    <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" />
    <Columns>
    <asp:BoundField HeaderText="Title" DataField="Title" />
    <asp:BoundField HeaderText="% Complete" DataField="PercentComplete" />  
    </Columns>
</asp:GridView>



Aspx.Cs
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using System.Security;

namespace TestPBar.TestPBar
{
    public partial class TestPBarUserControl : UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            dgvProgressBarSample.RowDataBound += new GridViewRowEventHandler(dgvProgressBarSample_RowDataBound);
            SPWeb currentMeb = SPContext.Current.Web;
            SPList lst = currentMeb.Lists["Tasks"];
            SPQuery sQuery = new SPQuery();
            sQuery.Query = "";
            SPListItemCollection myColl = lst.GetItems(sQuery);
            if (myColl.Count > 0)
            {
                dgvProgressBarSample.DataSource = myColl.GetDataTable();
                dgvProgressBarSample.DataBind();
            }

        }

        void dgvProgressBarSample_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                double  i = double.Parse(e.Row.Cells[1].Text) * 100;
                string strGenrateDynamicDiv = string.Empty;
                strGenrateDynamicDiv = "<div><table width='" + i + "%' style=\"Background-Color:Yellow;height:10px;\"><tr><td title='Task completed up to " + i + "%'>"+i+"%</td></tr></table></div>";
                e.Row.Cells[1].Text = strGenrateDynamicDiv;
            }
            catch (Exception ex)
            {
                //Response.Write(ex.ToString());
            }

        }
    }
}


No comments:

Post a Comment