1-888-365-2779
+1-888-365-2779
Try Now
More in this section

Forums / Developing with Sitefinity / Custom Control - RadGrid - DataBinder.Eval throwing null error - need help

Custom Control - RadGrid - DataBinder.Eval throwing null error - need help

2 posts, 0 answered
  1. Kameron
    Kameron avatar
    9 posts
    Registered:
    07 Nov 2011
    01 Mar 2012
    Link to this post
    Hello,
    So I have an issue where I am trying to get the key field value from a RadGrid in to a label using Eval and I get Value Cannot Be Null. If I put a value instead, the grid works fine. Can someone see why the Eval of Emp# does not work?
    Here is the line from the entire ASPX.
    <asp:Label ID="Label1" Font-Bold="true" Font-Italic="true" Text='<%# DataBinder.Eval(Container.DataItem,"Emp#") %>' Visible="true" runat="server" />
     
    And I tried:
     
    <asp:Label ID="Label1" Font-Bold="true" Font-Italic="true" Text='<%# Eval("Emp#") %>' Visible="true" runat="server" />


    Here is the entire ASPX.

    <%@ Control Language="C#" %>
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
    <%@ Register TagPrefix="sitefinity" Namespace="Telerik.Sitefinity.Web.UI" Assembly="Telerik.Sitefinity" %>
     
        <div class="oneColumn" style="position:relative;">
                <h3>YRMC Employee Photo Directory</h3>           
        </div>
     
            <div class="twoColumn" style="float:left; width:45%;">
                        <asp:Label ID="lblCampus" runat="server" Font-Bold="True" Font-Names="Arial" Font-Size="Medium"
                            ForeColor="#880000" Text="Campus/Location" Width="172px"></asp:Label><br />
                        <asp:DropDownList ID="ddLocation" runat="server" AutoPostBack="True" Width="270px">                       
                        </asp:DropDownList>
                              <br />
                    <br />
                        <asp:Label ID="lblDepartment" runat="server" Font-Names="Arial" Text="Department"
                            Width="174px" Font-Bold="True" Font-Size="Medium" ForeColor="#880000"></asp:Label><br />
                        <asp:DropDownList ID="ddDepartment" runat="server"
                            Width="270px" AutoPostBack="True" ToolTip="Select a Department" >                                                             
                            </asp:DropDownList><br />
                    <br />
                    <b>*Disclaimer: Employee photographs should be used for business purposes only.</b>
             <br /><br />
             </div>
              
             <div class="twoColumn" style="float:right; width:45%;" >
                     
                            <asp:Label ID="lblEmpName" runat="server" Font-Names="Arial" Text="Search by Employee Name"
                                Width="294px" Font-Bold="True" Font-Size="Medium" ForeColor="#880000"></asp:Label><br />
                            <asp:Label ID="lblSearchName2" runat="server" Font-Names="Arial" Text=" (Search for a name or any part of a name.)"
                                Width="294px"></asp:Label><br />
                            <asp:TextBox ID="txtSearchName" runat="server" Width="270px" ToolTip="Searches for a name or any part of a name."></asp:TextBox>
                            <asp:Button ID="btnSearchName" runat="server" Font-Bold="True" ForeColor="Maroon" Text="Search!" Width="105px" />
                            <br /><br />
                            <b>Note:</b> Please contact HR x 5795 with any questions.
                             Please ask employees without photos to contact HR to
                            have a picture taken. Photos of future employees are not available prior to their hire date.<br />                       
             </div>
                       
             <div style="clear:both" />
                  
             <input type="button" onclick="history.go(0)" value="Reset List" style="color:Maroon; font-weight:bold; width:105px" />
             <br />        
             
            <div style="width:100%;height:600px;overflow-y:auto;overflow-x:hidden;padding:5px 5px 5px 5px; border: thin solid silver;">        
                     
                <asp:Label ID="lblSort" runat="server" Font-Bold="True" Font-Size="Smaller" ForeColor="Maroon"
                    Text="You may sort on any category by clicking on any column heading." Font-Italic="True" Width="440px"></asp:Label>
                <br />
     
                    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
                        <AjaxSettings>
                            <telerik:AjaxSetting AjaxControlID="rgEmployees">
                                <UpdatedControls>
                                    <telerik:AjaxUpdatedControl ControlID="rgEmployees" />
                                </UpdatedControls>
                            </telerik:AjaxSetting>
                        </AjaxSettings>
                    </telerik:RadAjaxManager>
                     
     
                    <telerik:RadGrid id="rgEmployees" runat="server" allowpaging="True" AllowSorting="true" PageSize="20" DataSourceID="SqlSource1" OnPreRender="RadGrid1_PreRender"
                            AutoGenerateColumns="False" AllowFilteringByColumn="false" Skin="Outlook" OnItemCreated="RadGrid1_ItemCreated" OnItemCommand="RadGrid1_ItemCommand" >
                        <MasterTableView DataSourceID="SqlSource1" PageSize="20" DataKeyNames="Emp#">
                            <NestedViewTemplate>
                                <asp:Panel runat="server" ID="InnerContainer" CssClass="viewWrap" Visible="true">
                                    <telerik:RadTabStrip runat="server" ID="TabStrip1" MultiPageID="Multipage1" SelectedIndex="0">
                                        <Tabs>
                                            <telerik:RadTab runat="server" Text="Details" Selected="true" PageViewID="PageView1"></telerik:RadTab>
                                        </Tabs>
                                    </telerik:RadTabStrip>
                                    <telerik:RadMultiPage runat="server" ID="Multipage1" SelectedIndex="0" RenderSelectedPageOnly="false">
                                        <telerik:RadPageView runat="server" ID="PageView1">
                                            <asp:Label ID="Label1" Font-Bold="true" Font-Italic="true" Text='<%# DataBinder.Eval(Container.DataItem,"Emp#") %>' Visible="true" runat="server" />
                                            <div class="contactWrap">
                                                <table cellpadding="0" cellspacing="0">
                                                    <tr>
                                                        <td>
                                                            <asp:FormView ID="DetailsView1" runat="server" DataSourceID="SqlSource2">
                                                                <ItemTemplate>
                                                                    <hr />
                                                                    <h1><%# Eval("FullName") %></h1>
                                                                    <table border="0">
                                                                        <tr>
                                                                            <td class="EmployeePropertyLabel">Job Title</td>
                                                                            <td class="EmployeePropertyValue"><%# Eval("JobTitle") %></td>
                                                                            <td rowspan="5"><img src='file://\\apidata\Image\<%# Eval("Photo") %>' alt="Employee Photo" /></td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="EmployeePropertyLabel">Department Name</td>
                                                                            <td class="EmployeePropertyValue"><%# Eval("DeptName") %></td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="EmployeePropertyLabel">Campus</td>
                                                                            <td class="EmployeePropertyValue"><%# Eval("Campus") %></td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="EmployeePropertyLabel">Shift</td>
                                                                            <td class="EmployeePropertyValue"><%# Eval("Shift") %></td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="EmployeePropertyLabel">Hire Date</td>
                                                                            <td class="EmployeePropertyValue"><%# Eval("HireDate") %></td>
                                                                        </tr>
                                                                    </table>
                                                                    <hr />
                                                                </ItemTemplate>
                                                            </asp:FormView>
                                                            <asp:SqlDataSource ID="SqlSource2" runat="server" ConnectionString="Data Source=SomeTable;Initial Catalog=;User ID=;Password="
                                                                SelectCommand="SELECT * FROM dbo.wwwEmployeePhotos WHERE (Emp# = @Emp#)" ProviderName="System.Data.SqlClient">
                                                                <SelectParameters>
                                                                    <asp:ControlParameter ControlID="Label1" PropertyName="Text" Type="String" Name="Emp#" />
                                                                </SelectParameters>
                                                            </asp:SqlDataSource>
                                                        </td>
                                                    </tr>
                                                </table>
                                            </div>
                                        </telerik:RadPageView>
                                    </telerik:RadMultiPage>
                                </asp:Panel>
                            </NestedViewTemplate>
                            <Columns>
                                <telerik:GridBoundColumn UniqueName="Emp#" DataField="Emp#" Visible="false"></telerik:GridBoundColumn>
                                <telerik:GridBoundColumn UniqueName="LastName" HeaderText="Last Name" SortExpression="LastName" DataField="LastName"></telerik:GridBoundColumn>
                                <telerik:GridBoundColumn UniqueName="FirstName" HeaderText="First Name" SortExpression="FirstName" DataField="FirstName"></telerik:GridBoundColumn>
                                <telerik:GridBoundColumn UniqueName="DeptName" HeaderText="Department Name" SortExpression="DeptName" DataField="DeptName"></telerik:GridBoundColumn>
                                <telerik:GridBoundColumn UniqueName="HireDate" HeaderText="Last Hire Date" SortExpression="HireDate" DataField="HireDate"></telerik:GridBoundColumn>
                            </Columns>
                            <RowIndicatorColumn Visible="False">
                                <HeaderStyle Width="20px" />
                            </RowIndicatorColumn>
                        </MasterTableView>
                    </telerik:RadGrid>
            <asp:SqlDataSource ID="SqlSource1" runat="server" ConnectionString="Data Source=SomeDB;Initial Catalog=;User ID=;Password="
                    SelectCommand="SELECT DISTINCT FullName, FirstName, LastName, Campus, Emp#, DeptName, convert(varchar,HireDate,101) as HireDate FROM [wwwEmployeePhotos] WHERE (UPPER(Campus) LIKE '%' + UPPER(@searchCampus_string) + '%') AND (UPPER(DeptName) LIKE UPPER(@searchDepartment_string)) AND (UPPER(FullName) LIKE '%' + UPPER(@searchName_string) + '%') ORDER by FullName"
                    ProviderName="System.Data.SqlClient">
                    <SelectParameters>
                        <asp:ControlParameter ControlID="ddLocation" DefaultValue="%" Name="searchCampus_string"
                            PropertyName="SelectedValue" />
                        <asp:ControlParameter ControlID="ddDepartment" DefaultValue="%" Name="searchDepartment_string"
                            PropertyName="SelectedValue" />
                        <asp:ControlParameter ControlID="txtSearchName" DefaultValue="%" Name="searchName_string"
                            PropertyName="Text" />
                    </SelectParameters>
            </asp:SqlDataSource>
                 
                 
            </div>
  2. Kameron
    Kameron avatar
    9 posts
    Registered:
    07 Nov 2011
    02 Mar 2012
    Link to this post
    This does work, there was a Null. Ugh.
2 posts, 0 answered