如何在ASCX上将ListView数据源显示为图像滑块?

时间:2019-04-01 21:17:27

标签: c# dotnetnuke

我正在做一个DotNetNuke项目,在该项目中,我必须显示前端SQL Server数据库中的一些图像作为滑块。我已经在ASCX页面上的asp:ListView控件中添加了滑块标记,并在文件后面的代码中为asp:ListView分配了数据集。

代码工作正常,但我需要将图像显示为滑块。当前,第二图像显示在第一图像的底部,第二图像显示在第二图像之后。我希望它们像一个滑块,该滑块在左右两侧具有导航按钮,可以从右向左滑动,反之亦然。

这是我的ASCX代码:

<asp:ListView ID="lvFeaturedSlider" runat="server" class="full">
    <ItemTemplate>
        <div class="home-slide">
            <a href="#">
                <span class="project-title-large">MARRIOT HOTEL LOUNGE</span>   
                <img src="http://localhost:52829<%# Eval("Image") %>" alt="">
            </a>
         </div>
    </ItemTemplate>
</asp:ListView>

这是我的代码背后的代码:

private void BindSlider()
   {
        ProjectsController objController = new ProjectsController();
        DataSet ds = new DataSet();
        ds = objController.GetFeaturedProjectSlider();

        if (ds.Tables[0].Rows.Count > 0)
        {
            lvFeaturedSlider.DataSource = ds.Tables[0].DefaultView;
            lvFeaturedSlider.DataBind();
        }
        else
        {
            lvFeaturedSlider.DataSource = null;
            lvFeaturedSlider.DataBind();
        }
    }

当我在ItemTemplate外部对标记进行硬编码时,左右导航按钮会出现。但是在绑定时,它们不会出现,图像也不会像滑块一样显示。我曾尝试将代码代码包含在ItemTemplate中的foreach语句中,但无法弄清楚项目在ASCX页面上的确切格式。

1 个答案:

答案 0 :(得分:0)

我知道stackoverflow不赞成通过更改主题来回答问题,但是...我认为这是适当的。

第一个问题:您是否正在主题(皮肤)文件中执行此操作?如果是这样,那不是正常的做法。

第二个问题:您是否将图像存储在DNN数据库中?通常,人们对此并不满意,主要是针对性能问题。


现在执行此操作的正确方法是在DNN安装中安装模块,并使用其UI和工具来配置滑块。所有这些都应该是模块的一部分。有一些非常好的滑块模块,包括商业和开源的。 Google,或访问DNN商店。


现在您的问题。中继器会在页面上创建一系列div,每个图片一个。这就是为什么您以垂直布局查看所有图像的原因。如果要“滑动”它们,则需要添加一些功能。他们的方式是通过添加一些javascript或jQuery将这组div变成一个滑块。 Google的“ jquery滑块”有很多选择。

如果您使用已经开发的模块,那么所有这些工作都将为您完成。您只需要提供图像,也许也可以提供其他东西。