This is a migrated thread and some comments may be shown as answers.

[Solved] Grid as List View Problem

6 Answers 181 Views
Grid
This is a migrated thread and some comments may be shown as answers.
waseem
Top achievements
Rank 2
waseem asked on 07 Mar 2010, 06:12 PM
Dear,

Please can you check where i am doing mistake i follow your example but out put is only one record.

        <asp:SqlDataSource ID="SqlDataSource1" runat="server"
            ConnectionString="<%$ ConnectionStrings:MyH2HDBConnectionString %>"
            SelectCommand="SELECT [Country_Code], [Country_Name], [Supplier_Code] FROM [tblCountry]"></asp:SqlDataSource>
   
    </div>
 <telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" AllowFilteringByColumn="true"
            runat="server" GridLines="None" AllowPaging="true" AllowSorting="true" OnPreRender="RadGrid1_PreRender"
            PageSize="6">
            <PagerStyle Mode="NextPrevAndNumeric" />
            <MasterTableView TableLayout="Fixed">
                <ItemTemplate>
               
                    <%#IIf(Not CType(Container, GridItem).ItemIndex = 0, "</td></tr></table>", "")%>
                   
                    <asp:Panel ID="ItemContainer" CssClass='<%# IIf(CType(Container, GridItem).ItemType = GridItemType.Item, "item", "alternatingItem") %>'
                        runat="server">
                        <b>CustomerID:</b>
                        <%# Eval("Country_Code")%>
                        <br />
                        <b>CompanyName:</b>
                        <%# Eval("Country_Name")%>
                        <br />
                       
                 
                    </asp:Panel>
                </ItemTemplate>
            </MasterTableView>
            <GroupingSettings CaseSensitive="false" />
        </telerik:RadGrid>

Regards,

6 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 08 Mar 2010, 12:12 PM
Hi,

Have you added the below code in the PreRender event as shown in the demo?

VB:
    Protected Sub RadGrid1_PreRender(ByVal sender As ObjectByVal e As EventArgs) 
            Dim itemCount As Integer = TryCast(sender, RadGrid).MasterTableView.GetItems(GridItemType.Item).Length + TryCast(sender, RadGrid).MasterTableView.GetItems(GridItemType.AlternatingItem).Length 
            For Each item As GridItem In TryCast(sender, RadGrid).Items 
                If TypeOf item Is GridDataItem AndAlso item.ItemIndex < itemCount - 1 Then 
                    TryCast(TryCast(item, GridDataItem)("CustomerID"), TableCell).Controls.Add(New LiteralControl("<table style='display:none;'><tr><td>")) 
                End If 
            Next 
        End Sub 


Thanks,
Princy
0
waseem
Top achievements
Rank 2
answered on 08 Mar 2010, 01:49 PM
Hello,
Thanks for your reply i already added this code in code behind.
0
waseem
Top achievements
Rank 2
answered on 09 Mar 2010, 06:44 PM
Dear,

Please help me...................i am unable to get the same result, as shown in Example. of Grid as ListView
0
Princy
Top achievements
Rank 2
answered on 10 Mar 2010, 07:20 AM
Hi,

Could you try removing the code from the PreRender and try the following  design:

ASPX:
    <telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" AllowFilteringByColumn="true" runat="server" GridLines="None" AllowPaging="true" AllowSorting="true" PageSize="6"
           <MasterTableView TableLayout="Fixed"
                <ItemTemplate> 
                    <%# (((GridItem)Container).ItemIndex != 0)? "</td></tr></table>" : "" %> 
                    <asp:Panel ID="ItemContainer" CssClass='<%# (((GridItem)Container).ItemType == GridItemType.Item)? "item" : "alternatingItem" %>' runat="server"
                        <b>CustomerID:</b> 
                        <%# Eval("CustomerID")%> 
                        <br /> 
                        <b>CompanyName:</b> 
                        <%# Eval("CompanyName")%> 
                        <br /> 
                        <b>ContactName:</b> 
                        <%# Eval("ContactName")%> 
                        <br /> 
                        <b>ContactTitle:</b> 
                        <%# Eval("ContactTitle")%> 
                        <br /> 
                        <b>City:</b> 
                        <%# Eval("City")%> 
                        <br /> 
                        <b>Country:</b> 
                        <%# Eval("Country")%> 
                     </asp:Panel> 
                    <%# (((GridItem)Container).ItemIndex != (((GridItem)Container).OwnerTableView.PageSize - 1))? "<table style='display:none;'><tr><td>" : "" %> 
                </ItemTemplate> 
            </MasterTableView> 
            <GroupingSettings CaseSensitive="false" /> 
        </telerik:RadGrid> 
       


Thanks,
Princy
0
waseem
Top achievements
Rank 2
answered on 10 Mar 2010, 08:02 AM
Dear,


there is an error on first line at GridItem. what is GridItem here?


    <%# (((GridItem)Container).ItemIndex != 0)? "</td></tr></table>" : "" %> 
                    <asp:Panel ID="ItemContainer" CssClass='<%# (((GridItem)Container).ItemType == GridItemType.Item)? "item" : "alternatingItem" %>' runat="server"
                        <b>CustomerID:</b> 
    <%# (((GridItem)Container).ItemIndex != 0)? "</td></tr></table>" : "" %>   
0
Accepted
Dimo
Telerik team
answered on 10 Mar 2010, 09:15 AM
Hi Waseem,

The markup in the previous reply contains C# code, that's why it triggers an error. Please use

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
 
<script runat="server">
 
    Protected Sub RadGrid_NeedDataSource(ByVal sender As Object, ByVal e As GridNeedDataSourceEventArgs) Handles RadGrid1.NeedDataSource
        Dim dt As New DataTable()
        Dim dr As DataRow
        Dim cols As Integer = 4
        Dim rows As Integer = 10
        Dim colName As String = "Column"
     
        For c As Integer = 1 To cols
            dt.Columns.Add(String.Format("{0}{1}", colName, c))
        Next
     
        For r As Integer = 1 To rows
            dr = dt.NewRow()
            For rc As Integer = 1 To cols
                dr(String.Format("{0}{1}", colName, rc)) = String.Format("{0}{1} Row{2}", colName, rc, r)
            Next rc
            dt.Rows.Add(dr)
        Next r
 
        TryCast(sender, RadGrid).DataSource = dt
    End Sub
     
    Protected Sub RadGrid1_PreRender(ByVal sender As Object, ByVal e As EventArgs)
        Dim itemCount As Integer = TryCast(sender, RadGrid).MasterTableView.GetItems(GridItemType.Item).Length + TryCast(sender, RadGrid).MasterTableView.GetItems(GridItemType.AlternatingItem).Length
        For Each item As GridItem In TryCast(sender, RadGrid).Items
            If TypeOf item Is GridDataItem AndAlso item.ItemIndex < itemCount - 1 Then
                TryCast(TryCast(item, GridDataItem)("Column1"), TableCell).Controls.Add(New LiteralControl("<table style='display:none;'><tr><td>"))
            End If
        Next
    End Sub
     
</script>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
<head runat="server">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>RadControls</title>
<style type="text/css">
 
.item, .alternatingItem
{
    float: left;
    padding: 15px;
    margin: 5px;
    width: 200px;
    height: 100px;
    border: 1px solid threedshadow;
}
 
.item
{
    background: whitesmoke !important;   
}
.alternatingItem
{
    background: window !important;   
}
 
.item:hover, .alternatingItem:hover
{
    background: silver !important;   
}
 
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
 
<telerik:RadGrid  ID="RadGrid1" AllowFilteringByColumn="true"
    runat="server" GridLines="None" AllowPaging="true" AllowSorting="true" OnPreRender="RadGrid1_PreRender"
    PageSize="6">
    <PagerStyle Mode="NextPrevAndNumeric" />
    <MasterTableView TableLayout="Fixed">
        <ItemTemplate>
            <%#IIf(Not CType(Container, GridItem).ItemIndex = 0, "</td></tr></table>", "")%>
            <asp:Panel ID="ItemContainer" CssClass='<%# IIf(CType(Container, GridItem).ItemType = GridItemType.Item, "item", "alternatingItem") %>'
                runat="server">
                <b>CustomerID:</b>
                <%#Eval("Column1")%>
                <br />
                <b>CompanyName:</b>
                <%#Eval("Column2")%>
                <br />
                <b>ContactName:</b>
                <%#Eval("Column3")%>
                <br />
                <b>ContactTitle:</b>
                <%#Eval("Column4")%>
            </asp:Panel>
        </ItemTemplate>
    </MasterTableView>
    <GroupingSettings CaseSensitive="false" />
</telerik:RadGrid>
 
</form>
</body>
</html>


Greetings,
Dimo
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.
Tags
Grid
Asked by
waseem
Top achievements
Rank 2
Answers by
Princy
Top achievements
Rank 2
waseem
Top achievements
Rank 2
Dimo
Telerik team
Share this question
or