绑定到Object的嵌套可编辑Listview

时间:2010-12-15 15:06:33

标签: c# asp.net listview

我遇到类似于Question

中发现的问题

我有一个ListView嵌套在另一个listview中。外部Listview绑定到代码隐藏中的对象。

listViewOuter.DataSource = myObject[0].someProperty;
listViewOuter.DataBind();

其中someProperty是另一个对象的列表(mySecondObject)...

内部Listview需要是可编辑的,并且它在标记中绑定到mySecondObject中类型为List的另一个属性(secondObjectProperty),如下所示:

DataSource='<%# Eval("secondObjectProperty")%>'

这可以很好地显示数据,但是我无法弄清楚如何将嵌套的listview置于编辑模式。我正在处理OnItemEditing命令并将EditIndex设置为正确的行,但嵌套LV的模式永远不会更改。我已经尝试了所有可以想象的更新面板组合,并重新绑定内部和外部列表视图,但似乎没有任何工作

继承了LV标记(伪代码)

<updatePanel>
<asp:ListView ID="outerListView" runat="server">
   <layouttemplate here>

   <itemTemplate>
     <aspListView ID="innerListView" DataSource="<%# Eval("secondObjectPropery")%  onitemEditng="editMethod">


     </asp:LsitView>
   </itemTEmplate>
</asp:ListView>

</updatePanel

任何想法????

2 个答案:

答案 0 :(得分:0)

你的<ItemTemplate>内有其中一个吗?

<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit"
                        Text="Edit" />

答案 1 :(得分:0)

好的找到了解决方案。我没有使用“DataSource”标记将标记中的嵌套listview绑定,而是将它绑定在外部listview的ItemDataBound事件中。

在这种情况下,我检查一个editItemIndex,我将其存储为全局变量,该变量通过嵌套的listviews ItemEditing事件设置。效果很好。