如何在转发器内创建嵌套链接按钮?

2023-12-01

我需要在 asp.net 页面中创建一个嵌套的链接按钮,看起来像树视图,但都是链接按钮。示例如下所示:

ParentLinkButton1
    ChildLinkButton1
    ChildLinkButton2
    ChildLinkButton3
ParentLinkButton2
    ChildLinkButton1
    ChildLinkButton2
ParentLinkButton3
ParentLinkButton4
    ChildLinkButton1

我真的不知道该怎么做。根据我的研究,这可以通过重复控制来完成,但我不知道该怎么做...请您能一步一步教我...

提前致谢!


以下示例使用 ListView 而不是 Repeater。 ListView 很棒,因为它们比 Repeater 具有更大的灵活性。此外,正如您在下面的示例代码中看到的,绑定嵌套/子 ListView 都可以通过声明方式完成没有任何隐藏代码.

以下代码将产生的示例

enter image description here

ASPX

<asp:ListView runat="server" ID="lvw">
    <LayoutTemplate>
        <ul>
            <li id="itemPlaceholder" runat="server" />
        </ul>
    </LayoutTemplate>
    <ItemTemplate>
        <li>    
            <asp:LinkButton runat="server" CommandArgument='<%# Eval("Name")%>'><%# Eval("Name")%></asp:LinkButton>
            <asp:ListView runat="server" ID="lvw2" DataSource='<%# Eval("Children")%>'>
                <LayoutTemplate>
                    <ul>
                        <li id="itemPlaceholder" runat="server" />
                    </ul>
                </LayoutTemplate>
                <ItemTemplate>
                    <li><asp:LinkButton runat="server" CommandArgument='<%# Eval("Name")%>'><%# Eval("Name")%></asp:LinkButton></li>
                </ItemTemplate>
            </asp:ListView>
        </li>
    </ItemTemplate>
</asp:ListView>

C#

lvw.DataSource = personList;
lvw.DataBind();

正如您所看到的,在 C# 代码中,我创建了一个“Person”列表,如下所示。每个 Person 对象都有一个子 Person 对象的列表。通过以这种方式创建对象,绑定 ListView 实际上就像我所展示的一样简单。使用下面的 Person 对象运行一个快速示例,以便您亲自查看。

人物对象

public class Person
{
    public string name { get; set; }
    public List<Person> Children { get; set; }
}

对于您的测试,您可以创建一个 Page_Load 方法,如下所示:

protected void Page_Load(object sender, EventArgs e)
    {
        List<Person> personList = new List<Person>();
        Person person1 = new Person() { name = "Child 1" };
        Person person2 = new Person() { name = "Child 2" };
        List<Person> childPersonList1 = new List<Person>();
        childPersonList1.Add(person1);
        childPersonList1.Add(person2);
        Person person3 = new Person() { name = "Person 1" };
        person3.Children = childPersonList1;
        personList.Add(person3);
        Person person4 = new Person() { name = "Child 3" };
        Person person5 = new Person() { name = "Child 4" };
        List<Person> childPersonList2 = new List<Person>();
        childPersonList2.Add(person4);
        childPersonList2.Add(person5);
        Person person6 = new Person() { name = "Person 2" };
        person6.Children = childPersonList2;
        personList.Add(person6);
        Person person7 = new Person() { name = "Child 5" };
        Person person8 = new Person() { name = "Child 6" };
        List<Person> childPersonList3 = new List<Person>();
        childPersonList3.Add(person7);
        childPersonList3.Add(person8);
        Person person9 = new Person() { name = "Person 3" };
        person9.Children = childPersonList3;
        personList.Add(person9);

        lvw.DataSource = personList;
        lvw.DataBind();
    }

请参阅以下 StackOverflow 问题,了解有关 Repeater 和 ListView 之间差异的更多信息:Repeater、ListView、DataList、DataGrid、GridView...选择哪一个?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在转发器内创建嵌套链接按钮? 的相关文章

随机推荐

  • 外部包的自定义 JSON 封送

    如何将自定义 JSON 封送处理添加到外部包的结构中 我无法添加MarshalJSON and UnmarshalYAML到这些结构 您可以将该结构添加到您定义的结构中 然后添加功能MarshalJSON and UnmarshalYAML
  • Three.js 正交相机:对具有透视的立方体进行全部缩放

    我开发了一个简单的three js渲染立方体的应用程序 我创建了三个文件 index html viewer style css and viewer js 内容为index html如下
  • 带垂直线的散点图 - 棒棒糖图

    我想建立一个像这样的散点图 http www cbioportal org public portal images previews tp53 mutations png 其中每个点都有一个圆 垂直线 我在下面找到的最接近的东西是 3D
  • Laravel 应用程序语言发生变化?

    我最近为德国客户在 Laravel 中开发和应用 现在 客户希望知道该申请是否可以用德语而不是英语查看 当然 前端的所有视图我都是用英文的Blade设计的 现在有没有办法将视图翻译成所需的语言 是否有一个包或其他方法可以实现此目的 Lara
  • 如何正确设置 Windows7 以将 Selenium 与 Firefox [TDD with Python] 结合使用?

    我正在将我的系统 Windows 7 Pro 64 位 Python 3 5 通过 Anaconda 设置为通过 selenium 使用 Firefox 来跟随这本书使用 Python 进行测试驱动开发 Python 不断抛出错误WebDr
  • 如何测量线程等待时间?

    我不知道如何测量线程等待锁定的时间 我必须确定一个线程等待锁定的时间是否超过 1 秒 如果是 则运行另一个线程 谢谢 尝试这个 long startTime System nanoTime methodToTime long endTime
  • 如何使用 LINQ 针对 1 个表返回父级和子级

    一直在寻找解决方案 但到目前为止还没有找到 我相当确定通过一个 linq 调用就可以实现这一点 但很难解决 我有以下数据结构 Id ParentId Name ValidFlag 1 NULL parent 1 1 2 NULL paren
  • 检查 Console.ReadLine()!=null

    我正在为我的应用程序制作一个 CMD 并且发现当我检查 Console ReadLine null 时遇到了麻烦 string input Console ReadLine if input null SomeFunction input
  • CSS 多个多列 div

    我有一堆想要显示的项目 文本 图像 混合内容等 用户可以定义该项目出现在哪一行和哪一列 例如 在第 1 行中 可能有两个项目 列 都是图像 在第二行中 可能有三个项目 列 其中一个带有图像 另外两个为纯文本 哦 用户可以指定任何特定列 图像
  • 如何清除JavaScript中的敏感内存?

    我有一个登录表单 供用户输入他 她的密码 该表单绑定到 AngularJS 模型 假设在相应的控制器中 用户给出的密码可通过 scope password 实际的登录过程由以下函数调用处理 login scope email scope p
  • Metro 应用程序中的 FTP

    我正在尝试在 Metro 和 C 中创建 FTP 应用程序 但 System Net 中的 FTP 类已被删除 现在我不知道如何执行此操作 我研究过BackgroundUploader 但不明白如何恢复目录结构等 有没有人有这样做的经验 我
  • 无法在 Javascript 中进行递归调用

    当我尝试运行这个程序时 我在 Firefox 中收到一条错误消息 moveDate 在第 41 行未定义 参考行window setTimeout moveDate 100 有什么想法吗 我认为递归函数能够定义自己 然后调用自己 funct
  • 自定义位置非自定义控制 Google 地图 (v3 API)

    我希望能够调整地图类型控件的位置 我将其设置为右上角 但我需要将其缩小约 50 像素 我读到自定义控件可以填充 DIV 那么非自定义控件呢 我可以延长控制范围吗 下面是 API 为该控件生成的 HTML div class gmnoprin
  • Android 和布局

    我需要在视图中找到文本 文本 更多文本 应位于底部 center horizo ntal 文本 短文本 应位于右对齐位置 但距屏幕顶部约 10 文本 x x x x 应与屏幕中心对齐 第一四分之一的右 下对齐 文本 一些长文本 应该与屏幕第
  • 是否可以在 JAX-RPC java 客户端中访问原始 SOA/XML 消息?

    我正在尝试通过 JAX RPC java 客户端访问 XML 响应 我一直在研究 Axis 自定义处理程序 但看起来它们仅在服务端有用 下面的一些代码将返回 XML 响应有效负载 您可以直接从 AXIS Stub 类获取它 也可以从将其写入
  • 如何在Chrome扩展程序列表中设置宣传图片? [关闭]

    Closed 这个问题是无关 目前不接受答案 我可以看到很多 Chrome 扩展程序在列表中都有宣传图片 以 Gmail 为例 我找不到在开发人员仪表板中设置此图像的位置 如何 参观开发者仪表板并单击编辑链接 向下滚动 屏幕截图部分下方 然
  • sed 移动一行

    我只需要在 sed 中移动一行 我可以选择该行 sed i 7s 我需要将第 7 行向上移动 2 行 这样它将成为第 5 行 如果没有复杂的脚本 我在互联网上找不到任何东西可以做到这一点 我找不到将特定行移动特定次数的简单解决方案 seq
  • 从 ASP.NET C# 应用程序使用 PHP Web 服务(SOAP、WSDL) - 数组问题

    我有一个 Web 服务 用 PHP 定义 WSDL 和实现 这一项比较简单 重要的位定义如下
  • 硫化 Angular.dart?

    有硫化就像 Polymer dart 工具 由 Polymer Transformer 完成 一样 它可以很好地将所有导入的组件内联起来 并通过减少到服务器的往返次数来轻松为应用程序提供服务 有没有像 vulcanize 这样的工具可以用于
  • 如何在转发器内创建嵌套链接按钮?

    我需要在 asp net 页面中创建一个嵌套的链接按钮 看起来像树视图 但都是链接按钮 示例如下所示 ParentLinkButton1 ChildLinkButton1 ChildLinkButton2 ChildLinkButton3