【问题标题】:Dynamically generated bulleted list from code behind从后面的代码动态生成的项目符号列表
【发布时间】:2012-11-15 09:54:54
【问题描述】:

请您帮帮我,告诉我如何动态生成这段代码:

<li>
          <a href="../adGallery/images/pictures/1.jpg">
            <img src="../adGallery/images/pictures/thumbs/1.jpg" class="image0"/>
          </a>
        </li>
        <li>
          <a href="../adGallery/images/pictures/2.jpg">
            <img src="../adGallery/images/pictures/thumbs/2.jpg" title="A title for 10.jpg" alt="This is a nice, and incredibly descriptive, description of the image 10.jpg" class="image1"/>
          </a>
        </li>

来自我的代码?

非常感谢

【问题讨论】:

  • 为什么不使用带有模板的中继器之类的东西?你有什么初始数据?
  • 为什么要动态生成呢?您可以在标记上轻松声明它,不是吗?

标签: c# asp.net bulletedlist


【解决方案1】:

我建议使用Repeater,它可以尽可能地自定义您的控件。 BulletedList 控件是有限的。无论如何,这是一个尝试:

<asp:BulletedList id="ImagesBulletedList" 
        BulletStyle="Disc"
        DisplayMode="HyperLink" 
        OnClick="ImageBulletedList_Click"
        runat="server">    
</asp:BulletedList>

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ListItem listItem = new ListItem("Picture 1", "../adGallery/images/pictures/1.jpg");
        listItem.Attributes.Add("class", "image0");
        ImagesBulletedList.Items.Add(listItem);
        listItem = new ListItem("Picture 2", "../adGallery/images/pictures/2.jpg");
        listItem.Attributes.Add("class", "image1");
        listItem.Attributes.Add("title", "A title for 10.jpg");
        ImagesBulletedList.Items.Add(listItem);
        // ...
    }
}

【讨论】:

    【解决方案2】:

    使用 asp:Repeater 控件。

    这是一个关于做这种事情的教程:

    http://www.codeguru.com/csharp/.net/net_asp/controls/article.php/c19299/The-ASPNET-Repeater-Web-Server-Control.htm

    【讨论】:

    • 好吧,我忘了告诉你 html 代码正在被 javascript 代码使用,所以我需要在 javascript 代码之前初始化所有值。
    • 没有区别。这些值将在页面点击浏览器和 javascript 运行之前被初始化。
    【解决方案3】:

    使用此代码方法:

    private string getDynamicHTML(int count)
    {
        string message = "<ul>";
        for (int i = 0; i < count; i++)
        {
            message = message + "<li>";
            message = message + "<a href='../adGallery/images/pictures/" + i +".jpg'>";
            message = message + "<img src='../adGallery/images/pictures/thumbs/" + i + ".jpg' title='A title for 10.jpg' alt='This is a nice, and incredibly descriptive, description of the image 10.jpg' class='image1'/></a>";
            message = message + "</li>";
        }
        return message + "</ul>";
    }
    

    并将标签放置在所需位置并将结果绑定到该标签

    Label1.Text=getDynamicHTML(10);
    

    这将呈现所需的 HTML

    【讨论】:

    • 我试过那个东西,但它不起作用:在 aspx:
        在 C# 中:我已经使用了 HtmlGenericControl 方法。我只尝试了一项。如果它正常工作,我将创建一个 foreach 并从数据库中获取数据。任何人都知道为什么我会收到错误消息。 javascript 编译器告诉我“图像”没有值/空值。
    • 至少你应该使用 StringBuilder 而不是 string
    • @user1811956 上面的功能你试过了吗?这个功能你可以根据你的需要修改,我只是给你引导,你的情况就足够了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    相关资源
    最近更新 更多