2009-08-28 68 views
3

我正在一个asp.net web应用程序,其中我有我的项目预定义的面板与 CSS。现在我想在运行时多次创建具有相同设计和CSS的另一个面板。我有一个按钮控件,当我点击那个按钮时,它会添加另一个面板。我如何添加新的面板在运行时在asp.net

请帮我按照相同的标准添加另一个面板。

+0

我SOOOO要回答这个问题..但没有时间您要添加的ASP :( – madcolor 2009-08-28 20:58:44

+0

做:面板 – 2009-08-29 07:02:15

+0

是的,我想asp.net面板 – 2009-08-29 13:37:17

回答

4

如果这是你打算重用的东西,我建议你利用这个用户控件。你可以简单地在页面上添加一个新的控件实例。

有几件事情值得探讨:

  1. http://aspnet.4guysfromrolla.com/articles/081402-1.aspx
  2. http://aspalliance.com/565
  3. http://msdn.microsoft.com/en-us/library/c0az2h86.aspx

如果你想用回发到页面做到这一点,添加到您的活动...

//MyControl = Custom User Control 
var myControl = (MyControl) Page.LoadControl("MyControl.ascx"); 
this.ControlContainer.Controls.Add(myControl); 
+1

想知道这是downvoted也许战术 – 2009-08-28 22:02:33

+0

@Joel? :我在这么想,有点令人失望,但已经期待它了,至少亚历克斯给了我一半的信念:)我的想法:) – RSolberg 2009-08-28 22:07:39

+0

谢谢你的建议。我跟着这个链接http://aspalliance.com/565,但是当我在没有母版页和CSS设计的简单页面中使用它时,它工作正常,但是当我尝试使用拥有Master Page的页面时,它没有显示任何东西。 这是bcoz设计还是由于其他原因。 – 2009-08-28 23:16:54

-1

难道你不能只在按钮的“On_Click”事件后面的代码中创建一个新的面板?这将是我的建议。您可能需要有一个占位符将面板添加到页面上显示的内容中。

+0

这里有很多问题 - 下次回传后会发生什么?此外,它不会重复使用现有面板的任何代码。 – 2009-08-28 21:10:49

+0

根据设置的方式,可以使用AJAX进行回调以解决回发问题。还有其他问题是肯定的,但是当这些问题被发现时,可以修改答案来解决这些问题,因为我认为这些要求在这里没有经过深思熟虑。问题是关于在运行时加入面板。其他一切都是猜测。 – 2009-08-28 21:22:07

1

像RSolberg说,你可以写一个用户控件,并将其添加多次:

<my:UserControl id="MyControl1" runat="server" /> 
<my:UserControl id="MyControl2" runat="server" /> 
<my:UserControl id="MyControl3" runat="server" /> 

当然,只要你喜欢,因此对重复功能的用户控件可以是简单或复杂的页。

但是,根据您的确切需要,您可能需要考虑类似ASP.NET Repeater,ListView或DataGrid控件。通过类似Repeater的东西,您可以将数据绑定到它,并将数据显示在列表/网格中,这些数据具有共同的外观和感觉。您也可以为您的Repeater提供标题,项目和页脚部分的HTML/CSS模板,以使其看起来一致且专业。

<asp:Repeater id="MyRepeater" runat="server"> 
    <HeaderTemplate> 
    <h1>Products</h1> 
    </HeaderTemplate> 
    <ItemTemplate> 
    <p> 
     Product name: <%# Eval("ProductName") %> 
    </p> 
    </ItemTemplate> 
</asp:Repeater> 

,并在您的代码只是这样做:

MyRepeater.DataSource = products; 
MyRepeater.DataBind(); 

有这样做,你要问在ASP.NET什么的许多方面 - 成为一个更具体一点,我们就可以给你更多的具体帮助。

相关问题