2011-04-27 114 views
0

我有一个页面中的三个按钮,当用户点击第一个控制,我想第一个显示的用户控制,对于BUTTON2第二用户控制等等...我怎样才能在page_init实现这一目标,我们不KNW该按钮按下得到添加用户控件动态

+2

为什么要动态添加它们?根据点击的按钮使它们可见,并将其他按钮隐藏在Button_Click事件处理程序中。 – 2011-04-27 09:52:17

+0

因为这会让我的页面变得非常沉重 – user685663 2011-04-27 09:58:28

+1

@ user685663:动态控件让你的生活更加“重”。当你不需要时你不应该这样做,因为例如ViewState和事件处理问题会变得更加困难。此外,不可见的控件将不会被ASP.Net渲染为HTML,因此您的页面根本不会“更重”。 – 2011-04-27 10:13:05

回答

0

你可以用这一招在Page_Init事件查找按钮ID

string buttonID = Request["__EVENTTARGET"].ToString(); 

在buttonID在buttonID变量,你会发现按钮的客户端ID ..

0

这取决于你想如何显示它们。

需要时更容易有不需要时隐藏的控件和唯一可见的。

如果要动态地添加它们并将它们添加到最简单的方法是将控件添加到一个占位符,当你需要他们。 如

ASP

<asp:PlaceHolder id="myPlaceHolder" runat="server"></asp:PlaceHolder> 

后面的代码(C#)

myControl = new UserControl(); 
myPlaceHolder.Controls.Add(myControl); 

但你也需要记住,要能够访问回传控制,你需要在重新添加它提交/回传。

+0

现在我有点糊涂了......我想我有第5个的用户控件它会重得多,所以,我想动态添加控件根据@Tim Schmelter这是不是这样... – user685663 2011-04-27 10:23:54

+0

它的东西我建议你为自己尝试一下。 这可能是a **中的一个正确的痛苦来处理添加了控制符的控制,但可以解决您的问题。 – Dreaddan 2011-05-02 09:07:18