从超链接动态更新ContentPlaceHolder

问题描述:

我有一个母版页,它给了我2个contentplaceholder(除了标题之外) 1是一个左边的排水沟,1是排水沟右边的主体方形。从超链接动态更新ContentPlaceHolder

在webform中,我的阴沟有一个手风琴控件,每个面板都有一堆超链接。 我想为每个超链接来控制主体的contentplaceholder内的“表单”。

我猜测有多个用户控件的效果,并且webform在主要部分内有一个updatepanel,我根据哪个超链接被点击动态地分配UserControls。

我不知道如何为此谷歌。

我可能只是有很多面板,全部看不见,超链接调用一些jquery使某个面板可见,但这看起来效率很低。

有人可以帮我一个更好的解决方案吗? 或者我在想这个,并应该只为每个超链接有一个aspx页面?但后来我会失去我在accodian空间..... 注意 - 这是asp.net webforms,而不是mvc

谢谢!

+0

你是否必须使用'HyperLinks'?你可以使用'LinkBut​​tons'吗? – 2012-03-27 13:35:22

+0

linkbuttons也不错 – Crudler 2012-03-27 13:40:57

我不知道你想要做什么的全部细节,但有LinkButton可以使用Click事件处理程序调用方法或母版页设置一个属性:

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    Master.TogglePlaceHolder("Some Criteria"); 
} 

要使用这种方法,你将需要一个强类型引用母版页,你可以在页面指令照顾这样的:

<%@ MasterType VirtualPath="~/Themes/Default.master" %> 

然后在母版页,只要确保了方法或财产是可访问的:

public void TogglePlaceHolder(string criteria) 
{ 
    //perform your logic here 
} 
+0

谢谢。这很有帮助!但我的概率的后半部分是,我动态地想分配一个用户控件到我的contentplaceholder而不刷新页面。类似于 - contentplaceholder.clear,contentplaceholder.add(myusercontrol)等etc – Crudler 2012-03-27 14:19:26

+0

除非您计划使用AJAX,否则无法避免刷新。如果你可以使用AJAX,你应该可以通过在更新面板中包装'PlaceHolder'和'LinkBut​​ton'来实现这个目的(如果需要的话,还可以单独更新面板)。 – 2012-03-27 14:57:18

+0

我的答案的第2部分是[*.com/questions/213429/... [1]:*.com/questions/213429/...排序! – Crudler 2012-03-27 14:58:58