Multiple sources

2 posts, 0 answers
  1. oprisan tudorel
    oprisan tudorel avatar
    5 posts
    Member since:
    Mar 2010

    Posted 28 Jun 2010 Link to this post

    Hello!

    I have a problem with a listview.

    Let me detail a little more:

    I have 1 listview, 1 objectdatasource and 2 SQLDatasources..

    First the listeview is binded with objectdatasource.
    What i want to do after and really don't know how is:

    At OnItemDataBound Event, i want to Add, fields( to fill fields actually) from the 2 SQLDatasources.

    The 2 SQLDataSources should use as a parameter(ID for the sql query) an item from the listview.

    So at OnItemDataBound, i should take the ObjectID pass it to the SQLDataSources, and complete the fields in the listview


    <telerik:RadListView ID="RadListView1" runat="server" DataSourceID="ObjectDataSource1" 
                ItemPlaceholderID="ListViewContainer" DataKeyNames="ObjectID" AllowPaging="True" OnItemDataBound="Get_rest" > 
                <LayoutTemplate> 
                    <asp:PlaceHolder runat="server" id="ListViewContainer" /> 
                </LayoutTemplate> 
                <ItemTemplate> 
                    <fieldset style="float: left; width: 350px; height: 250px;"
                        <legend style="font-weight: normal"><b>Company Name</b>
                            <%# Eval("ShortName")%></legend
                        <div class="details"
                            <div class="photo-container"
                                <telerik:RadBinaryImage runat="server" ID="RadBinaryImage1" DataValue='<%#Eval("WebImage") %>' 
                                    AutoAdjustImageControlSize="false" Width="120px" ToolTip='<%#Eval("Description", "Photo of {0}") %>' 
                                    AlternateText='<%#Eval("Description", "Photo of {0}") %>' /> 
                            </div> 
                            <div class="data-container"
     
                                <ul> 
                                    
                                    <li> 
                                        <label> 
                                            Short name</label> 
                                        <%# Eval("Name")%> 
                                         
                                    </li> 
                                    <li> 
                                        <label> 
                                            City:</label> 
                                        <%#Eval("City")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            ZIP:</label> 
                                        <%# Eval("ZIP")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            SPR:</label> 
                                        <%#Eval("SPR")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            Country:</label> 
                                        <%#Eval("NationID")%> 
                                    </li> 
                                    
                                    <li> 
                                        <label> 
                                            Telephone:</label> 
                                        <%# Eval("Telephone")%> 
                                    </li> 
                                      <li> 
                                        <label> 
                                            Mobile:</label> 
                                        <%# Eval("Mobile")%> 
                                    </li> 
                                      <li> 
                                        <label> 
                                            Fax:</label> 
                                        <%# Eval("Fax")%> 
                                    </li> 
                                      <li> 
                                        <label> 
                                            E-mail:</label> 
                                        <%# Eval("Email")%> 
                                    </li> 
                                      <li style="display:none;"
                                         <label id="ObjID_test" runat="server" style="display:none;"
                                           <%# Eval("ObjectID")%> </label> 
                                    </li> 
                                     
                                     
                                </ul> 
                            </div> 
                        </div> 
                    </fieldset> 
                </ItemTemplate> 
            </telerik:RadListView> 
    This is how the Listview looks like. the Objects datasource brings back: Image/Shortname/Name, one sql datasource brings back addresses and the other brings back contact types.
    What i managed to do so far is to get the ID at the OnItemDatabound event. After this i am a little stuck, as i don't know what to do next.

    Having to use 1 objectdatasource and 2 sqlDatasources is mandatory.



    I have a little update on my solution, but it's still not working, and i don't know how ti fix it.

    the aspx code looks like this now:

    <telerik:RadListView ID="RadListView1" runat="server" DataSourceID="ObjectDataSource1" 
                ItemPlaceholderID="ListViewContainer" DataKeyNames="ObjectID" AllowPaging="True" OnItemDataBound="Get_rest" > 
                <LayoutTemplate> 
                    <asp:PlaceHolder runat="server" id="ListViewContainer" /> 
                </LayoutTemplate> 
                <ItemTemplate> 
                    <fieldset style="float: left; width: 350px; height: 250px;"
                        <legend style="font-weight: normal"><b>Company Name</b>
                            <%# Eval("ShortName")%></legend
                        <div class="details"
                            <div class="photo-container"
                                <telerik:RadBinaryImage runat="server" ID="RadBinaryImage1" DataValue='<%#Eval("WebImage") %>' 
                                    AutoAdjustImageControlSize="false" Width="120px" ToolTip='<%#Eval("Description", "Photo of {0}") %>' 
                                    AlternateText='<%#Eval("Description", "Photo of {0}") %>' /> 
                            </div> 
                            <div class="data-container"
                                                      <ul> 
                                    
                                    <li> 
                                        <label> 
                                            Short name:</label> 
                                        <%# Eval("Name")%> 
                                         
                                    </li> 
                                     
                                   <telerik:RadListView ID="RadListView2" runat="server" DataSourceID="SqlDataSource1" 
                ItemPlaceholderID="ListViewContainer" AllowPaging="True" > 
                <LayoutTemplate> 
                    <asp:PlaceHolder runat="server" id="ListViewContainer" /> 
                </LayoutTemplate> 
                <ItemTemplate> 
                   <%-- <fieldset>--%> 
                        
                             <li> 
                                        <label> 
                                            City:</label> 
                                        <%#Eval("City")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            ZIP:</label> 
                                        <%# Eval("ZIP")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            SPR:</label> 
                                             
                                        <%#Eval("SPR")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            Country:</label> 
                                        <%#Eval("NationID")%> 
                                    </li> 
                                 
                                 
                                     
                               
                             
                  <%--  </fieldset>--%> 
                </ItemTemplate> 
            </telerik:RadListView> 
                                    
                                    <telerik:RadListView ID="RadListView3" runat="server" DataSourceID="SqlDataSource2" 
                ItemPlaceholderID="ListViewContainer" AllowPaging="True" > 
                <LayoutTemplate> 
                    <asp:PlaceHolder runat="server" id="ListViewContainer" /> 
                </LayoutTemplate> 
                <ItemTemplate> 
                 
                   <%-- <fieldset>--%> 
                        
                               <li> 
                                        <label> 
                                            Phone:</label> 
                                        <%# Eval("Telephone")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            Mobile:</label> 
                                        <%# Eval("Mobile")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            FAX:</label> 
                                        <%# Eval("FAX")%> 
                                    </li> 
                                    <li> 
                                        <label> 
                                            E-mail:</label> 
                                        <%# Eval("Email")%> 
                                    </li> 
                  <%--  </fieldset>--%> 
                </ItemTemplate> 
            </telerik:RadListView> 
                                                                     
                                </ul> 
                            </div> 
                        </div> 
                    </fieldset> 
                </ItemTemplate> 
            </telerik:RadListView> 

    and in code behind i have the onitemdatabound function:

    Protected Sub Get_rest(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadListViewItemEventArgs) Handles RadListView1.ItemDataBound 
            Dim ObjID As New Integer 
            'Dim RadListColumn As New Telerik.Web.UI.RadListViewDataItemCollection 
     
     
            Dim item = TryCast(e.Item, RadListViewDataItem) 
            If item IsNot Nothing Then 
                Dim value = CInt(DataBinder.Eval(item.DataItem, "ObjectID")) 
                ObjID = value 
            End If 
            SqlDataSource1.SelectParameters("ObjectID").DefaultValue = ObjID 
            SqlDataSource2.SelectParameters("ObjectID").DefaultValue = ObjID 
     
     
     
        End Sub 

    Now the problem is that all the items in the listview, have the address and the contacts of the last  ObjectID.

    Ideea anyone?




  2. Rosen
    Admin
    Rosen avatar
    3234 posts

    Posted 01 Jul 2010 Link to this post

    Hello Oprisan ,

    As you cannot modify the DataItem to which RadListViewDataItem is bound, you should instead get the additional data (by manually querying the SqlDataSources) inside ItemDataBound and manually populate the appropriate controls inside the ItemTemplate.

    Kind regards,
    Rosen
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  3. UI for ASP.NET Ajax is Ready for VS 2017
Back to Top