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.

Friday, January 25, 2013

Bind even and Odd SharePoint ListItems Side by Side within a GridView




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="EOGridViewUserControl.ascx.cs" Inherits="EOGridView.EOGridView.EOGridViewUserControl" %>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>
<table width="100%" cellpadding="0" cellspacing="0">
<tr><td align="center"><strong>Bind even & Odd SharePoint ListItems Side by Side within a GridView</strong></td></tr>
</table>
</div>
<div>&nbsp;</div>
<div>
<asp:GridView runat="server" ID="dgvEvenOddGridView"
    AutoGenerateColumns="False" Width="100%" BackColor="White"
    BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4"
    EnableModelValidation="True">
<Columns>
<asp:BoundField DataField="OddRecord" HeaderText="Odd Record" />
<asp:BoundField DataField="EvenRecord" HeaderText="Even Record" />
</Columns>
    <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
    <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
    <RowStyle BackColor="White" ForeColor="#330099" />
    <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
</asp:GridView>
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</div>
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.Data;
using System.Collections;

namespace EOGridView.EOGridView
{
    public partial class EOGridViewUserControl : UserControl
    {
        ArrayList ArrOdd = new ArrayList();
        ArrayList ArrEven = new ArrayList();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                getData();
            }
        }
        public void getData()
        {
            SPWeb currentWeb = SPContext.Current.Web;
            SPList lst = currentWeb.Lists["Articles"];
            SPListItemCollection myColl = lst.Items;
            if (myColl.Count > 0)
            {
                int i = 0;
                foreach (SPListItem item in myColl)
                {
                    if (i % 2 != 0)
                    {
                        ArrOdd.Add(item.Title.ToString());
                    }
                    else
                    {
                        ArrEven.Add(item.Title.ToString());
                    }
                    i++;
                }
                DataTable dt = new DataTable();
                dt.Columns.Add("OddRecord");
                dt.Columns.Add("EvenRecord");

                for (int k = 0; k < ArrOdd.Count; k++)
                {
                    dt.Rows.Add();
                    dt.Rows[k]["OddRecord"] = ArrOdd[k].ToString();
                }

                for (int L = 0; L < ArrEven.Count; L++)
                {
                    dt.Rows[L]["EvenRecord"] = ArrEven[L].ToString();
                }
                dgvEvenOddGridView.DataSource = dt;
                dgvEvenOddGridView.DataBind();
            }
        }
    }
}

No comments:

Post a Comment