Solved

Get Value in DataGrid

Posted on 2008-10-14
6
295 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

 

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

Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

Question has a verified solution.

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

Suggested Solutions

In my previous article (http://www.experts-exchange.com/Programming/Languages/.NET/.NET_Framework_3.x/A_4362-Serialization-in-NET-1.html) we saw the basics of serialization and how types/objects can be serialized to Binary format. In this blog we wi…
This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
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…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

730 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