代码之家  ›  专栏  ›  技术社区  ›  Erick

如何在回发时在嵌套控件列表上设置数据源

  •  0
  • Erick  · 技术社区  · 15 年前

    我试图在这里正确设置嵌套控件列表的数据源。

    基本思想:

    我有一个asp:repeater项目。里面有一个下拉列表和一个项目符号列表以及一个按钮。

    我想将中继器中选定行的下拉列表中的选定项添加到选定行的项目符号列表中。

    到目前为止,我设法做到了这一点,OnClick wich是相当好的。问题是触发OnClick事件 之后 OnTimeDatabdound。要查看我在BulletedList的数据源中添加的项,必须刷新页面。

    我试过这个:

    ((BulletedList)src.FindControl("sharedPlanDomains")).Items.Clear();
    

    然后

    ((BulletedList)src.FindControl("sharedPlanDomains")).Datasource = myobject;
    ((BulletedList)src.FindControl("sharedPlanDomains")).DataBind();
    

    但它似乎不起作用。

    ((BulletedList)src.FindControl("sharedPlanDomains")).DomainsAssociated.ForEach(f => list.Items.Add(new ListItem { Text = f.Name }));
    

    也不管用。

    有什么建议吗?

    [编辑:澄清]

    假设我有这个结构:

    • 托管计划:i-Perso
      域:[下拉列表][按钮:关联]
      关联域:

      • google.com网站
      • 谷歌2.com
    • 主持计划:i-Mense 域:[下拉列表][按钮:关联] 关联域:

      • 谷歌3.com

    举个例子,我点击第一个下拉列表并选择google4.com域,然后google4.com将被添加到I-Perso行的bulletedlist的数据源中。

    我想在这里做的是关联域和计划。如果只是一对一的关系,我会做得更好,但这是一对一的关系商店。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Sandesh    10 年前

    你可以把 数据源 从内部列表视图到绑定到外部的项的属性 列表视图 . 但是,要做到这一点,内部listview 项目模板 外部的 列表视图 .

    请参阅下面的代码并注意 DataSource='<%# Eval("Labels_color") %> '内部列表视图的属性。

    <asp:ListView ID="ListView_Orp_Results" runat="server" ItemPlaceholderID="itemPlaceholder">
     <LayoutTemplate>
        <div id="outer_result_container">
            <div id="itemPlaceholder" />
        </div>
     </LayoutTemplate>
     <ItemTemplate>
         <div id="result_photo">...</div>
         <div id="result_category">...</div>
         <div id="result_detector">...</div>
         <div id="inner_result_container" runat="server">
             <asp:ListView ID="ListView_inner_results" runat="server" ItemPlaceholderID="itemPlaceholder" DataSource='<%# Eval("Labels_color") %>'>
                <LayoutTemplate>
                    <div id="outer_result_container" runat="server" >
                        <div id="itemPlaceholder" runat="server"> </div>
                    </div>
                </LayoutTemplate>
                <ItemTemplate>
                     <div id="inner_result_photo">...
                    </div>
                    <div id="inner_result_category">...
                    </div>
                    <div id="inner_result_categoryID">...
                    </div>
                </ItemTemplate>
            </asp:ListView>
        </div>
         </div>
     </ItemTemplate>
    </asp:ListView>
    

    这样你就不需要把巢 列表视图 从后面的密码。就把主体绑起来 列表视图 ,以及所有内部 列表视图 将自动绑定到绑定对象的Labels\u texture属性

    关于runat=“server”,它是asp.net控件的必需属性。基本上,此属性意味着asp.net将解析标记并创建相应的对象。

    大多数时候你不需要穿它 html格式 元素(div,p,…),但在某些情况下,您可能希望它在代码后面操作相应的对象。