asp.net中的母版页和内容页面通信

时间:2011-02-12 11:34:54

标签: asp.net

假设我在母版页中有一个下拉,我希望当用户从该下拉列表中选择任何项目时,将发生回发,并且所选项目文本将在内容页面的标签中显示。请帮我提供示例代码。

感谢

4 个答案:

答案 0 :(得分:4)

您应该将以下指令添加到内容页面:

<%@ MasterType VirtualPath="path to master page" %>

添加公共属性ih母版页代码隐藏文件:

public DropDownList DropDownList
{
    get { return dropDownList; }
}

在内容页面中添加事件处理程序:

Master.DropDownList.SelectedIndexChanged += OnSelectedIndexChanged;

将Master.DropDownList.SelectedValue分配给事件hanlder中的Label.Text。

答案 1 :(得分:3)

在母版页上:

<asp:DropDownList ID="someDropDown" runat="server" AutoPostBack="True">
<asp:ListItem Text="Bob" Value="Bob"></asp:ListItem>
<asp:ListItem Text="John" Value="John"></asp:ListItem>
<asp:ListItem Text="Mark" Value="Mark"></asp:ListItem>
</asp:DropDownList>

在aspx的任何其他页面上:

<asp:Label ID="userLabel" runat="server"/>

在任何其他页面上,代码隐藏:

protected void Page_Load(object sender, EventArgs e)
    {
        DropDownList thisDropDown = this.Master.FindControl("someDropDown") as DropDownList;
        userLabel.Text = thisDropDown.SelectedValue;
    }

答案 2 :(得分:2)

只需一个样本

MasterPageCode:

Public Class MyMasterPage
inherits Page (or MasterPage?)

public readonly property MyDropDown as DropDown
end Property

End Class

Page COde

Public Class MyContentPage
inherits Page

Public Overrides Sub OnLoad
       dim drop as DropDown = CType(Me.MasterPage, MyMasterPage).MyDropDown
       AddHandler drop.SelectedIndexChanged, AddressOf someprocedure
End Sub

End Class

答案 3 :(得分:1)