当前位置: 首页 > 面试题库 >

数据绑定具有子相关内容的列表的最佳方法(例如,SO的带有标签的问题)

李敏学
2023-03-14
问题内容

使用ASP.net 2.0,我如何向用户显示信息,类似于SO上的“问题”列表,其中每个问题都有一些子项(例如标签)。

我可能会进行两个单独的查询,一个首先查找问题列表,然后另一个查询查找属于问题列表的所有标签。

方法1:

然后,我可能会使用嵌套的转发器,并在每个嵌套的转发器“ OnItemDataBind”上的代码后面执行一条select语句。

方法二:

或使用这两个数据集,我将使用C#代码创建每个“问题”的业务实体,并具有一个称为“标签”的属性。然后,我将遍历标签数据集并分配属性。

有什么更有效的?还有其他选择吗?


问题答案:

我肯定会避免第二种方法-
您不想每次对父项进行数据绑定时都访问数据库。正如DOK所说,请尝试正确地构建您的html" target="_blank">系统。对我而言,这意味着填充业务对象的集合并对其进行绑定。我对自定义菜单控件做了类似的操作(请注意,这嵌套了三个数据列表,但是您可以使用转发器):

在aspx页面中:

<asp:DataList ID="dlMenuOne" runat="server" onitemdatabound="dlMenu_ItemDataBound" >
            <ItemTemplate>
             //your object

                <asp:DataList ID="dlMenuTwo"  runat="server" onitemdatabound="dlMenuTwo_ItemDataBound">
                <ItemTemplate>
                //your object's child items

                    <asp:DataList ID="dlMenuThree" runat="server">
                    <ItemTemplate>
                       //child item's child items    
                    </ItemTemplate>
                    </asp:DataList>

                </ItemTemplate>
                </asp:DataList>

            </ItemTemplate>
            </asp:DataList>

然后在后面的代码中:

protected void dlMenu_ItemDataBound(object sender, DataListItemEventArgs e)
{
    DataListItem parentList = e.Item;
    DataList dlMenuTwo = (DataList)parentList.FindControl("dlMenuTwo");
    MenuItem item = (MenuItem)parentList.DataItem;
    dlMenuTwo.DataSource = _menu.GetChildItems(item);
    dlMenuTwo.DataBind();
}

此方法基本上获取对要绑定的对象的引用(parentList.DataItem),然后将嵌套的DataList绑定到子项(_menu.GetChildItems(item))



 类似资料:
  • 我有一个来自类型“Details”的sortedList,它包含以下内容: 现在,排序后的列表返回所有这些对象,但我想用相同的test0、test1、test2和test3、test4和test5(test3+test3、test4+test4和test5+test5): 我不确定是否是解决此问题的最佳选项。有什么想法吗?应该找到所有test0重复项的两个方法:

  • 我想绑定JavaFX与值。 我试过了,例如。 或 但我总是得到NullPointerException。 我怎么才能修好它?

  • 据我了解,您需要一个问题才能有一个适用于动态规划的最佳子结构。 我不明白的是。 采用以下数组 A=[1,6,-3,1,5,-1] 根据维基百科: 在计算机科学中,如果一个问题的最优解可以由其子问题的最优解构造出来,则称该问题具有最优子结构。此属性用于确定动态规划和贪婪算法对某个问题的有用性。 这就是我的困惑所在。 如果让我在上面给出的数组中找到大小为 3 的最大子数组,答案将是 1、5、-1(总和

  • 我正在使用普罗米修斯和格拉法纳,我正在试图跟踪一个web服务器应用程序。 我想以毫秒为单位绘制特定查询的平均持续时间。我想我可以从下面的数据到那里,但我在挣扎。 我的两组值: 但是分母可以有不同的返回码,所以我必须求和,我需要做一些忽略或on之类的事情,但我还没有找到一个例子来帮助我,我对此非常陌生。 有人吗?

  • 您将获得一个包含n个元素的数组:<代码>d[0],d[1]。。。,d【n-1】。计算所有相邻子数组的最大差值之和。 形式上:S=sum{max{d[l,..., r]}-min{d[l,..., r}},Δ0 输入: 输出: 解释: l=0;r=1;数组:[1,3]和=最大值([1,3])-最小值([1,3])=3-1=2 l=0;r=2;数组:[1,3,2]和=最大值([1,3,2])-最小值(

  • 问题内容: 给定上面的xml文件,我将如何检索标签内所有标签的列表?我想获取“名称”的所有值以及标签之间的数字值。像这样: 问题是我不知道会有多少个附加标签。可能没有,也可能有20。我需要某种方法来对它们全部进行计数,然后删除信息。 问题答案: 这是一个使用JDK执行查询的示例。它假定变量包含您的XML文档。