在嵌套ListView中处理DropDownList

时间:2011-02-16 10:35:53

标签: asp.net listview drop-down-menu asp.net-3.5

我有两个嵌套的.net ListViews。我需要通过从外部列表视图中的下拉列表中选择来过滤内部列表视图的内容。控件的布局如下:

<asp:listview id="lvOuter" runat="server" onitemdatabound="lvOuter_OnItemDataBound"
              onitemcommand="lvOuter_OnItemCommand" onitemcreated="lvOuter_ItemCreated" onselectedindexchanged="lvOuter_SelectedIndexChanged">
    <layouttemplate>
    <ul>
        <asp:placeholder id="itemPlaceholder" runat="server" />
    </ul>
    </layouttemplate>
    <itemtemplate>
        <asp:dropdownlist id="ddlTest" runat="server" onselectedindexchanged="ddlTerm_SelectedIndexChanged" autopostback="true" >
            <asp:listitem text="6" value="6"/>
            <asp:listitem text="9" value="9"/>
        </asp:dropdownlist>
        <asp:listview id="lvInner" runat="server" onselectedindexchanging="lvInner_SelectedIndexChanging"
                            onitemdatabound="lvInner_ItemDataBound" onitemcommand="lvInner_OnItemCommand">
             <layouttemplate>
                 <asp:placeholder id="itemPlaceholder" runat="server" />
             </layouttemplate>
             <itemtemplate>
                  <!--Results displayed here-->
              </itemtemplate>
          </asp:listview>
      </itemtemplate>
  </asp:listview>

在页面加载中我将数据绑定到外部列表视图,并在OnItemDataBound上绑定内部列表视图。

这一切都正常,但我现在需要做的是重新绑定内部listview包含一个新查询,其中包含下拉列表中的参数。当用户在下拉列表中选择新值时,就会发生这种情况。 (OnSelectedIndexChanged)

我可以通过发件人轻松访问该值,如下所示:

protected void ddlMyDropDown_OnSelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList ddlMyDropDown = sender as DropDownList;
    string value = ddlMyDropDown.SelectedValue;
}

但我无法找到与该下拉列表相关的内部列表视图,以便将新查询的结果与添加的where子句绑定。

我敢肯定这一定是一个漂亮的共同要求。任何指针都将非常感激。

1 个答案:

答案 0 :(得分:0)

您是否尝试使用类似&lt;%#Eval(“value”,“{0}”)%&gt;的内容见here

我似乎记得做了类似于你的事情。我已经这么做了一段时间,如果这不准确,那就很抱歉。