Solved

Get Value in DataGrid

Posted on 2008-10-14
6
297 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
Is Your DevOps Pipeline Leaking?

Is your CI/CD pipeline a hodge-podge of randomly connected tools? You’ve likely got a tool to fix one problem & then a different tool to fix another, resulting in a cluster of tools with overlapping functionality. Learn how to optimize your pipeline with Gartner's recommendations

 

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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
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…
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…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …

688 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