Click here to Skip to main content
15,896,415 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi all.

I am working on photo showing in listview item (asp.net). i did it. but when i want to add datapager to listview item it gives an error.

Error is : ListView with id 'myListView' must have a data source that either implements ICollection or can perform data source paging if AllowPaging is true.


Thanks
Best Regards..


My codes asp code:

ASP.NET
<asp:ListView ID="myListView" runat="server" GroupItemCount="2" OnItemDataBound="myListView_ItemDataBound1">
                   <LayoutTemplate>
                       <ol id="itemPlaceholder"  runat="server">
                       </ol>
                       <asp:DataPager ID="pg" PageSize="2" runat="server" >
                           <Fields>
                               <asp:NextPreviousPagerField ShowFirstPageButton="True" ShowPreviousPageButton="True"
                                   ShowNextPageButton="True" ShowLastPageButton="True" />
                               <asp:NumericPagerField />
                           </Fields>
                       </asp:DataPager>
                   </LayoutTemplate>
                   <GroupTemplate>
                       <tr>
                           <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
                       </tr>
                   </GroupTemplate>
                   <ItemTemplate>
                       <td align="center">
                           <asp:Image ID="imgPicture" runat="server" Width="350" Height="150"></asp:Image>
                           <br />
                           <asp:HyperLink ID="hplCategory" runat="server"></asp:HyperLink>
                           <br />
                       </td>
                   </ItemTemplate>
               </asp:ListView>



my c# code :

C#
    protected void Page_Load(object sender, EventArgs e)
    {
        String strConnString;
        strConnString = "xxxxxx";
        objConn = new MySqlConnection(strConnString);
        objConn.Open();
        BindData();
    }

    protected void BindData()
    {
        String strSQL;
        strSQL = "SELECT * FROM tbl_videolar";
        MySqlDataReader dtReader;
        objCmd = new MySqlCommand(strSQL, objConn);

        dtReader = objCmd.ExecuteReader();

        myDataList.DataSource = dtReader;
        myDataList.DataBind();
        dtReader.Close();
}
    protected void myDataList_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        Image img = (Image)(e.Item.FindControl("imgPicture"));
        if (img != null)
        {
            img.ImageUrl = (string)DataBinder.Eval(e.Item.DataItem, "video_resim");
        }
hplCate.Text = (string)DataBinder.Eval(e.Item.DataItem, "video_ad");
    }
Posted

1 solution

i did it this way :

ASP.NET
<asp:listview id="lvEmployee" runat="server" groupplaceholderid="groupPlaceholder" xmlns:asp="#unknown">
                    GroupItemCount="2">
                    <layouttemplate>
                        <table>
                            <tr>
                                <td>
                                    <table border="0" cellpadding="5">
                                        <asp:placeholder runat="server" id="groupPlaceHolder"></asp:placeholder>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </layouttemplate>
                    <grouptemplate>
                        <tr>
                            <asp:placeholder runat="server" id="itemPlaceHolder"></asp:placeholder>
                        </tr>
                    </grouptemplate>
                    <itemtemplate>
                        <td>
                            <a href="video/videoizle.aspx?video_no=<%# Eval("video_id") %>">
                                <asp:image id="imgPicture" runat="server" width="350" height="150" imageurl="<%# Eval("video_resim") %>">
                                </asp:image>
                            </a>
                            <br />
                            <asp:label id="EmpNameLabel" runat="server" text="<%# Eval("video_ad") %>" />
                        </td>
                    </itemtemplate>
                </asp:listview>
                <asp:datapager id="DataPager1" runat="server" pagedcontrolid="lvEmployee" pagesize="6" xmlns:asp="#unknown">
                    OnPreRender="DataPager1_PreRender">
                    <fields>
                        <asp:nextpreviouspagerfield buttontype="Button" showfirstpagebutton="True" shownextpagebutton="False">
                            ShowPreviousPageButton="False" />
                        <asp:numericpagerfield />
                        <asp:nextpreviouspagerfield buttontype="Button" showlastpagebutton="True" shownextpagebutton="False">
                            ShowPreviousPageButton="False" />
                    </asp:nextpreviouspagerfield></asp:nextpreviouspagerfield></fields>
                </asp:datapager>




C#
MySqlConnection con = new MySqlConnection("xxxxxx");

protected void Page_Load(object sender, EventArgs e)
{
    lvEmployee.DataSource = GetEmployee("Select * from tbl_videolar");
    lvEmployee.DataBind();
}

public DataTable GetEmployee(string query)
{
    MySqlDataAdapter ada = new MySqlDataAdapter(query, con);
    DataTable dtEmp = new DataTable();
    ada.Fill(dtEmp);
    return dtEmp;
}

protected void DataPager1_PreRender(object sender, EventArgs e)
{
    lvEmployee.DataSource = GetEmployee("Select * from tbl_videolar");
    lvEmployee.DataBind();
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900