【问题标题】:Rebinding on Postback Based on Selected DropDown Value基于选定的下拉值重新绑定回发
【发布时间】:2008-12-10 22:58:06
【问题描述】:

您好!

我在绑定到 XmlDataSources 的 FormView 中有一个 DropDownList:

<asp:FormView ID="MyFormView" runat="server" DataSourceID="MyXmlDataSource">
    <ItemTemplate>
        <h1><%# XPath("SomeNode")%></h1>
        <asp:Label ID="MyLabel" runat="server" AssociatedControlID="MyDdl" Text='<%# XPath("SomeOtherNode")%>' />
        <asp:DropDownList ID="MyDdl"
                          runat="server"
                          DataSourceID="MyDdlDataSource"
                          DataTextField="name"
                          DataValueField="value"
                          AutoPostBack="true"
                          OnSelectedIndexChanged="MyDdl_SelectedIndexChanged">
        </asp:DropDownList>
    </ItemTemplate>
</asp:FormView>
<asp:XmlDataSource ID="MyXmlDataSource" runat="server" XPath="Root/MainSection" />
<asp:XmlDataSource ID="MyDdlDataSource" runat="server" XPath="Root/MainSection/Areas/*" />

在页面的代码隐藏中,我有以下 OnLoad() 方法以及下拉列表的选择索引更改时的方法:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    if (!IsPostBack)
    {
        string xml = GetMyXml(0); // default value
        MyXmlDataSource.Data = xml;
        MyDdlDataSource.Data = xml;
    }
}

protected void MyDdl_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList l_MyDdl = FindControl("MyDdl") as DropDownList;
    int myVal;
    if (l_MyDdl != null)
        if (!Int32.TryParse(l_MyDdl.SelectedItem.Value, out myVal))
            myVal = 0;
    string xml = GetMyXml(myVal);
    MyXmlDataSource.Data = xml;
    MyDdlDataSource.Data = xml;
}

当从下拉列表中选择不同的值并调用 SelectedIndexChanged 时,我无法获取下拉列表的值(FindControl 始终返回 null)以使用它重新绑定数据源。我怎样才能得到这个值?

【问题讨论】:

    标签: c# asp.net data-binding drop-down-menu postback


    【解决方案1】:

    由于您的下拉列表包含在另一个控件中,因此您可能需要递归查找控件。

    http://weblogs.asp.net/palermo4/archive/2007/04/13/recursive-findcontrol-t.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-26
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多