dtadin
asked on
Get Value in DataGrid
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.
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">
</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"> 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>
Do it in ItemDataBound not ItemCreated.
ASKER
I am using OnItemDataBound="DataGrid1 _ItemCreat ed"
thank you
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">
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
you need to use FindControl() and then cast the object....for example..
((Label)e.Item.FindControl
ASKER
I tried updating my function to
string test = ((Label)e.Item.FindControl ("dglstate ")).Text;
Still no luck, test is still returning a value of "".
string test = ((Label)e.Item.FindControl
Still no luck, test is still returning a value of "".
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Nope, I get "System.Web.UI.WebControls .DataGridI temEventAr gs' does not contain a definition for 'Row'"