C# 如何从内容页重新绑定转发器(母版页内)?
是否可以从内容页重新绑定转发器(母版页内)?C# 如何从内容页重新绑定转发器(母版页内)?,c#,asp.net,master,data-binding,C#,Asp.net,Master,Data Binding,是否可以从内容页重新绑定转发器(母版页内)? 我的网页是基于母版和内容页,我有一些链接(锚)下载文件 点击这些链接后,页面将启动内容加载页面,并显示下载窗口。 但我们永远不会得到母版页的页面加载,在母版页中我有一个显示下载数量的摘要。 在显示下载窗口之前,如何从内容页重新绑定该摘要(母版页内) 正确的方法是让用户控件触发母版页订阅的事件。如果您需要一些示例代码,请告诉我 一些示例代码: 在用户控件中,添加以下事件: 请求公共事件事件处理程序刷新 用户控件将在需要刷新时通过调用以下方法引发此事件:
我的网页是基于母版和内容页,我有一些链接(锚)下载文件 点击这些链接后,页面将启动内容加载页面,并显示下载窗口。
但我们永远不会得到母版页的页面加载,在母版页中我有一个显示下载数量的摘要。
在显示下载窗口之前,如何从内容页重新绑定该摘要(母版页内) 正确的方法是让用户控件触发母版页订阅的事件。如果您需要一些示例代码,请告诉我 一些示例代码: 在用户控件中,添加以下事件: 请求公共事件事件处理程序刷新 用户控件将在需要刷新时通过调用以下方法引发此事件:
private void OnRefreshRequested()
{
//make sure the event is being listened to. no point raising an event if no one cares!
if (this.RefreshRequested != null)
{
this.RefreshRequested(this, EventArgs.Empty);
}
}
现在,母版页将订阅用户控件的事件并相应地进行操作。订阅该事件就像订阅任何其他事件一样(即:单击按钮)
如果这能解决问题,请告诉我。是的。您可以使用
this.master
从web表单访问母版页,然后必须将其转换为适当的类型。从那里,您可以访问您定义的任何公共方法或属性
简单地添加一个ReBind
方法,该方法可以满足您的需要,您应该很乐意去做
编辑
可能是这样的:
(this.Master与YourRealMasterPage的类型相同)。重新绑定()代码>您可以向子级公开母版页控件。使用母版页中的访问者公开控件。。。例如:
public Repeater MasterpageRptr {get;set;}
然后在子页面上,添加主类型定义:
<%@ Page Language="C#" Title="Content Page" MasterPageFile="~/MyMaster.master"%>
<%@ MasterType TypeName="MyMaster" %>
(where MyMaster is the master page class file)
(其中MyMaster是母版页类文件)
然后,您可以使用访问器在您的子代码后面调用它
如果有帮助,请投票。是的,很简单。您可以从内容页“查找”控件。
下面是一个绑定到GridView控件的示例
大师:
<asp:GridView runat="server" ID="gridViewMaster" AutoGenerateColumns="true" />
只需将网格视图对象和控件id替换为中继器…并将其绑定到所需的任何对象
编辑-以下是查找服务器端div的代码:
var divMaster = (System.Web.UI.HtmlControls.HtmlGenericControl)Master.FindControl("divMaster");
divMaster.InnerHtml = "<h2>Hello World</h2>";
var divMaster=(System.Web.UI.HtmlControls.HtmlGenericControl)Master.FindControl(“divMaster”);
divMaster.InnerHtml=“你好世界”;
谢谢您的回答/请给我看一些代码!谢谢你的编辑,你的RealMasterPage是什么类型的->我怎么能找到?我尝试过(将此.Master作为母版页);但是有错误!转到母版页后面的代码。您应该能够在那里看到类名。这就是母版页类的类型。谢谢你的帮助。可以为服务器端div做这项工作吗?亲爱的Ed B,真的谢谢。是否可以为服务器端div执行此任务?是的,其工作方式相同。只需将div添加到master。然后在内容页上找到它。我已经添加了代码来查找上面的服务器端div,我测试了这个>var SummaryContainer=Master.FindControl(“SummaryContainer”);SummaryContainer.DataBind();但那个div从不向我显示新的结果,我应该点击页面中的按钮来获取结果。
var divMaster = (System.Web.UI.HtmlControls.HtmlGenericControl)Master.FindControl("divMaster");
divMaster.InnerHtml = "<h2>Hello World</h2>";