Solved

SPGridview in webpart

Posted on 2011-03-09
2
857 Views
Last Modified: 2013-12-17
I am trying to bind a document library list to SPGridview.
I saw an example found at this site: http://nishantrana.wordpress.com/2009/03/23/using-spgridview-to-bound-to-list-data-in-sharepoint/

But I get an error and a warning:
Error      1      The name 'grdPropertyValues' does not exist in the current context      C:\Users\sogunroI\Documents\Visual Studio 2008\Projects\HotLineWP\HotLineWP\hotline\HotLineIncoming.ascx.cs      32      40      HotLineWP

Warning      2      Type of 'HotLineDocs.HotLineIncoming.SPGridView1' is not CLS-compliant      C:\Users\sogunroI\Documents\Visual Studio 2008\Projects\HotLineWP\HotLineWP\hotline\HotLineIncoming.ascx.designer.cs      23      71      HotLineWP


Please help. Thanks!


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;

namespace HotLineDocs
{
    public partial class HotLineIncoming : System.Web.UI.UserControl
    {
        //http://nishantrana.wordpress.com/2009/03/23/using-spgridview-to-bound-to-list-data-in-sharepoint/

        SPSite mySite = SPContext.Current.Site;
        SPWeb myWeb;
        SPList myList;

        protected void Page_Load(object sender, EventArgs e)
        {
            myWeb = mySite.OpenWeb();
            myList = myWeb.Lists["HOTLINE"];

            if (!Page.IsPostBack)
            {
                BindListToGrid(myList, grdPropertyValues);
            }
        }

        private void BindListToGrid(SPList myList, SPGridView gridView)
        {
            SPListItemCollection results = myList.Items;

            //Create the datatable object
            DataTable table;
            table = new DataTable();
            table.Columns.Add("Type", typeof(string));
            table.Columns.Add("Name", typeof(string));
            table.Columns.Add("Modified", typeof(string));
            table.Columns.Add("Modified By", typeof(string));
            table.Columns.Add("STATUS", typeof(string));
            table.Columns.Add("PRIORITY CODE", typeof(string));
            table.Columns.Add("PRIORITY", typeof(string));
            table.Columns.Add("CASE NUMBER", typeof(string));
            table.Columns.Add("COMPLETE", typeof(string));

            //Create the rows for each splistitem
            DataRow row;
            foreach (SPListItem result in results)
            {
                row = table.Rows.Add();
                row["Type"] = result["Type"].ToString();
                row["Name"] = result["Name"].ToString();
                row["Modified"] = result["Modified"].ToString();
                row["Modified By"] = result["Modified By"].ToString();
                row["STATUS"] = result["STATUS"].ToString();
                row["PRIORITY CODE"] = result["PRIORITY CODE"].ToString();
                row["PRIORITY"] = result["PRIORITY"].ToString();
                row["CASE NUMBER"] = result["CASE NUMBER"].ToString();
                row["COMPLETE"] = result["COMPLETE"].ToString();
            }

            //Create the bound fields
            SPBoundField boundField;
            boundField = new SPBoundField();
            boundField.HeaderText = "Type";
            boundField.DataField = "Type";
            boundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
            boundField.ItemStyle.Wrap = false;
            SPGridView1.Columns.Add(boundField);

            boundField = new SPBoundField();
            boundField.HeaderText = "Name";
            boundField.DataField = "Name";
            SPGridView1.Columns.Add(boundField);

            boundField = new SPBoundField();
            boundField.HeaderText = "Modified";
            boundField.DataField = "Modified";
            SPGridView1.Columns.Add(boundField);

            boundField = new SPBoundField();
            boundField.HeaderText = "Modified By";
            boundField.DataField = "Modified By";
            SPGridView1.Columns.Add(boundField);

            boundField = new SPBoundField();
            boundField.HeaderText = "STATUS";
            boundField.DataField = "STATUS";
            SPGridView1.Columns.Add(boundField);

            boundField = new SPBoundField();
            boundField.HeaderText = "PRIORITY CODE";
            boundField.DataField = "PRIORITY CODE";
            SPGridView1.Columns.Add(boundField);

            boundField = new SPBoundField();
            boundField.HeaderText = "PRIORITY";
            boundField.DataField = "PRIORITY";
            SPGridView1.Columns.Add(boundField);

            boundField = new SPBoundField();
            boundField.HeaderText = "CASE NUMBER";
            boundField.DataField = "CASE NUMBER";
            SPGridView1.Columns.Add(boundField);

            boundField = new SPBoundField();
            boundField.HeaderText = "COMPLETE";
            boundField.DataField = "COMPLETE";
            SPGridView1.Columns.Add(boundField);

        }
    }
}

Open in new window

0
Comment
Question by:Isaac
2 Comments
 
LVL 9

Accepted Solution

by:
SharePointGirl earned 500 total points
ID: 35087843
SPGridView grdPropertyValues; //add this under your list definition

protected override void CreateChildControls()
{
     grdPropertyValues = new SPGridView();
     Controls.Add(grdPropertyValues);
)

0
 
LVL 5

Author Comment

by:Isaac
ID: 35095601
SharePointGirl,

The code you gave, "SPGridView grdPropertyValues;" fixed the error but now I get a warning.
I should have given more details.  
The code you see above is a user control that will be in a web part.

I get the following warning now:
Warning      3      Field 'HotLineDocs.HotLineIncoming.grdPropertyValues' is never assigned to, and will always have its default value null      C:\Users\sogunroI\Documents\Visual Studio 2008\Projects\HotLineWP\HotLineWP\hotline\HotLineIncoming.ascx.cs      24      20      HotLineWP


The webpart code is below.
I tried to add the following in my "CreateChildControls()" but it does not recognize grdPropertyValues

grdPropertyValues = new SPGridView();
     Controls.Add(grdPropertyValues);

Any ideas?

Also, if this could have been done better, please enlighten me.  This is my first attempt at this.
Thanks for any help you can provide.

using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace HotLineWP
{
    [Guid("6b6dfe8b-46b2-4523-a9ba-ed21421f857a")]
    public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
    {
        Control HotLineControl;
        String err;

        public WebPart1()
        {
        }

        protected override void Render(HtmlTextWriter writer)
        {
            try
            {
                HotLineControl.RenderControl(writer);
            }
            catch (Exception e)
            {
                writer.Write(e.Message + ":" + err);
            }
        }
        protected override void CreateChildControls()
        {
            base.CreateChildControls();
            
            // TODO: add custom rendering code here.
            // Label label = new Label();
            // label.Text = "Hello World";
            // this.Controls.Add(label);
            try
            {
                this.Controls.Clear();
                HotLineControl = this.Page.LoadControl("hotline/HotLineIncomming.ascx");
            }
            catch (Exception e)
            {
                err = e.Message;
            }
        }
    }
}

Open in new window

0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
We had a requirement to extract data from a SharePoint 2010 Customer List into a CSV file and then place the CSV file into a directory on the network so that the file could be consumed by an AS400 system. I will share in Part 1 how to Extract the Da…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now