Solved

Get Value in DataGrid

Posted on 2008-10-14
6
291 Views
Last Modified: 2013-12-17
I am trying to change the Cell Color of my Data Grid depending on the value of a Cell and for some reason the value of my cell seems to be returning a null value.

The function DataGrid1_ItemCreated is called and this line should return the value of the cell, but is returning "".
string test = e.Item.Cells[0].Text;

The Data Grid does load with no issues after proceeding through this function.

Any help would be greatly appreciated, I have included the full code for your review.


public class BranchLicensing : System.Web.UI.Page

	{
 

		string PageID = "BranchLicensing.aspx.cs";

		protected System.Web.UI.WebControls.DataGrid DataGrid1;
 

		GatewaySales.Modules.Common.Library objLibrary = new GatewaySales.Modules.Common.Library();

		GatewaySales.Modules.Common.BaseSecurity  objBaseSecurity = new GatewaySales.Modules.Common.BaseSecurity();
 
 

		private void Page_Load(object sender, System.EventArgs e)

		{

			// Put user code to initialize the page here

			PageInit();
 

			if(!IsPostBack)

			{

				LoadBranchLicenses();

			}

		}
 

		public System.Data.DataTable LoadBranchLicenses() 

		{

			// connect to database

			SqlConnection conn = new System.Data.SqlClient.SqlConnection(ConfigurationSettings.AppSettings["Integra_ConnectionString"]);

			conn.Open();

			string selectstmt = "";

			selectstmt = "select State, CONVERT (varchar,ExpirationDate, 101) as ExpirationDate, Lender1stMtg, Lender2ndMtg, Broker1stMtg, Broker2ndMtg from custom_licensingbranch where branchid = 51 order by state";

			

			SqlCommand myCommand = new SqlCommand(selectstmt,conn);

			SqlDataAdapter adapter = new SqlDataAdapter(myCommand);

			System.Data.DataTable BranchLicenses = new System.Data.DataTable(); 

			adapter.Fill(BranchLicenses);
 

			DataGrid1.DataSource = BranchLicenses;

			DataGrid1.DataBind();

				

			conn.Close();

			

			return BranchLicenses;

		}
 

		protected void DataGrid1_ItemCreated( System.Object sender, System.Web.UI.WebControls.DataGridItemEventArgs e )  

		{

			

			if ( e.Item.ItemType == ListItemType.Item ||

				e.Item.ItemType == ListItemType.AlternatingItem ||

				e.Item.ItemType == ListItemType.SelectedItem )  

			{
 

				string test = e.Item.Cells[0].Text;
 

				if(test == "PA")

				{

					e.Item.Cells[0].ForeColor = System.Drawing.Color.Green;

				

				}

			}
 

		}
 
 
 
 
 
 
 

<form id="Form1" method="post" runat="server" class="appbg">

			<table width="300" cellpadding="0" cellspacing="0" bgcolor="#ffffff" class="appbg">

				<TBODY>

					<tr>

						<td colspan="3" width="100%">

							<!--#include file="../../includes/topNav.aspx"-->

						</td>

					</tr>

					<tr>

						<td width="1%" valign="top">

							<!--#include file="../../includes/leftNav.aspx"-->

						</td>

						<td width="1%" valign="top">

							&nbsp;&nbsp;

						</td>

						<td width="1%">

							<!-- ******* Contents will go here *********** !-->

							<div style="BORDER-RIGHT:black 0px solid; BORDER-TOP:black 0px solid; BORDER-LEFT:black 0px solid; WIDTH:633px; BORDER-BOTTOM:black 0px solid; HEIGHT:445px">

								<table border="0" width="100%">

									<TBODY>

										<tr>

											<td class="contentbg"><b><IMG src="<%=getImagePath()%>/Images/PageHead.bmp">&nbsp;State Desk Licensing Information</b><HR>

											</td>

										</tr>

										

										<tr>

											<td>

												<asp:datagrid id="DataGrid1" AllowPaging="False" runat="server" ShowFooter="True"

													AllowSorting="True" GridLines="Horizontal" CellPadding="2" BorderWidth="1px" Width="100%"

														AutoGenerateColumns="False" OnItemDataBound="DataGrid1_ItemCreated">

												<SelectedItemStyle></SelectedItemStyle>

												<AlternatingItemStyle BackColor="Silver"></AlternatingItemStyle>

												<HeaderStyle CssClass="sectionheader"></HeaderStyle>

												<Columns>

													<asp:TemplateColumn HeaderText="State" HeaderStyle-Font-Bold="True">

													<ItemTemplate>

														<asp:Label Runat="server" ID="dglstate"><%# DataBinder.Eval(Container, "DataItem.State") %>

													</asp:Label>

													</ItemTemplate>

													</asp:TemplateColumn>

													<asp:TemplateColumn HeaderText="Expiration Date" HeaderStyle-Font-Bold="True">

														<ItemTemplate>

															<asp:Label Runat="server" ID="dglexpdate"><%# DataBinder.Eval(Container, "DataItem.ExpirationDate") %>

															</asp:Label>

														</ItemTemplate>

													</asp:TemplateColumn>

													<asp:TemplateColumn HeaderText="1st Lien Mtg License?" HeaderStyle-Font-Bold="True">

														<ItemTemplate>

															<asp:Label Runat="server" ID="Label3"><%# DataBinder.Eval(Container, "DataItem.Lender1stMtg") %>

															</asp:Label>

														</ItemTemplate>

													</asp:TemplateColumn>

													<asp:TemplateColumn HeaderText="2nd Lien Mtg License?" HeaderStyle-Font-Bold="True">

														<ItemTemplate>

															<asp:Label TabIndex="0" Runat="server" ID="Label4"><%# DataBinder.Eval(Container, "DataItem.Lender2ndMtg") %>

															</asp:Label>

														</ItemTemplate>

													</asp:TemplateColumn>

													<asp:TemplateColumn HeaderText="1st Lien Broker License?" HeaderStyle-Font-Bold="True">

														<ItemTemplate>

															<asp:Label TabIndex="0" Runat="server" ID="Label5"><%# DataBinder.Eval(Container, "DataItem.Broker1stMtg") %>

															</asp:Label>

														</ItemTemplate>

													</asp:TemplateColumn>

													<asp:TemplateColumn HeaderText="2nd Lien Broker License?" HeaderStyle-Font-Bold="True">

														<ItemTemplate>

															<asp:Label TabIndex="0" Runat="server" ID="Label6"><%# DataBinder.Eval(Container, "DataItem.Broker2ndMtg") %>

															</asp:Label>

														</ItemTemplate>

													</asp:TemplateColumn>

												</Columns>									

											</asp:DataGrid>

											</td>

										</tr>

										<tr>

											<td>

												

												<P></form>

Open in new window

0
Comment
Question by:dtadin
  • 3
  • 2
6 Comments
 
LVL 13

Expert Comment

by:crazyman
ID: 22712566
Do it in ItemDataBound not ItemCreated.
0
 

Author Comment

by:dtadin
ID: 22712752
I am using OnItemDataBound="DataGrid1_ItemCreated"



thank you
<asp:datagrid id="DataGrid1" AllowPaging="False" runat="server" ShowFooter="True"

													AllowSorting="True" GridLines="Horizontal" CellPadding="2" BorderWidth="1px" Width="100%"

														AutoGenerateColumns="False" OnItemDataBound="DataGrid1_ItemCreated">

Open in new window

0
 
LVL 16

Expert Comment

by:Gyanendra Singh
ID: 22713232
you are using template .. that is why value is not bind to cell

you need to use FindControl() and then cast the object....for example..

((Label)e.Item.FindControl("lblName")).Text
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:dtadin
ID: 22713750
I tried updating my function to

  string test = ((Label)e.Item.FindControl("dglstate")).Text;

Still no luck, test is still returning a value of "".

0
 
LVL 16

Accepted Solution

by:
Gyanendra Singh earned 250 total points
ID: 22714196
can you check if your control support e.row
string test = ((Label)e.Row.FindControl("dglstate")).Text;
0
 

Author Comment

by:dtadin
ID: 22714229
Nope, I get "System.Web.UI.WebControls.DataGridItemEventArgs' does not contain a definition for 'Row'"



0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
For most people, the WrapPanel seems like a magic when they switch from WinForms to WPF. Most of us will think that the code that is used to write a control like that would be difficult. However, most of the work is done by the WPF engine, and the W…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…

863 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

25 Experts available now in Live!

Get 1:1 Help Now