【问题标题】:How to change content of master page dynamically如何动态更改母版页的内容
【发布时间】:2012-08-30 04:51:50
【问题描述】:

我正在为电子商务网站开发母版页。我在母版页上有左侧菜单栏。此左侧菜单栏包含类别列表并随着用户更改类别而更改。类别存储在 SQL DB 中。所以,我想随着类别的变化重建这个菜单栏,有可能吗?

关注www.actgreen.com.au/www

我也想为网站创建面包屑,我该怎么做。

我正在使用 asp.net 4.0。

谢谢。

【问题讨论】:

  • 你有没有尝试过一些代码...如果是,然后在这里发布..
  • 不,我只是为母版页创建 UI。我正在更多地考虑这些。这些网站已经用 Classic asp 开发。
  • 如果我在你的位置,我会为标签分配一些类,然后使用 jquery 更新标签。就像分配一个类说 cssClass="myLabel" 然后从母版页或内容页写 ScriptManager.RegisterStartupScript(this.Page , typeof(Page), "scr" , "$('.myLabel').text('Updated Content ');" ,true);
  • 这里,我使用的是 SQL 数据库方法,所以基本上,我有存储 categoryID 和 ParentID 的类别表。第一级的Parent ID为0,然后分配给Child category,继续CategoryID。

标签: asp.net master-pages


【解决方案1】:

好吧,我们不知道您在代码中使用什么确切方法来绑定左侧菜单。此外,您必须在母版页本身中绑定左侧菜单。因此,每次单击左侧菜单时,您都可以通过为其提供一些参数来重新绑定它。 或者如果您需要从其他页面或内容页面调用它..那么您可以像这样尝试..

System.Reflection.MethodInfo mInfo = this.Page.Master.GetType().GetMethod("RefreshLeftMenu");
mInfo.Invoke(this.Page.Master, null);  

我是这样做的……希望对你也有帮助……

【讨论】:

  • 在页面中你可以通过Master.FindControl(controlName)获得对母版页的任意控制
  • 可以直接调用Master.RefreshLeftMenu()。为此,您必须在 ContentPage 上注册 MasterType:
  • 谢谢..分享我曾经这样做过..但你提出了另一种方式..这对我和其他人也有帮助..
【解决方案2】:

您可以在母版页上使用控件并在 OnLoad 页面上更改它们

Label MyLabelBrand = (Label)Master.FindControl("LabelBrand");
MyLabelBrand.Text = "Fabrikam";

如果你想调用母版页的方法Refresh(),你需要调用Master.Refresh();。 为此,您需要在 ContentPage 上注册主类型:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<%@MasterType VirtualPath="Site.Master" %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2017-08-02
    • 2021-11-29
    相关资源
    最近更新 更多