FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 2979|回复: 5
打印 上一主题 下一主题

动态添加控件,不可以通过点击"按钮"的方式添加吗?

[复制链接]
跳转到指定楼层
楼主
发表于 2013-6-5 12:02:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看了FineUI的示例和教程,提到的动态添加控件都是通过Page_Init方法或者Page_Load方法添加的,不可以在按钮的点击事件中添加吗?
因为添加的控件是跟数据相关的,数据量很多的时候,不可能在PageInit中全部加载。想知道真正的动态分布创建控件怎么实现?
沙发
发表于 2013-6-5 21:12:08 | 只看该作者
这个问题我也想知道答案
板凳
 楼主| 发表于 2013-6-7 09:58:43 | 只看该作者
我现在的解决办法是通过IFrame来实现的。
点击“按钮”打开一个IFrame,并传递一个参数,在子页面的PageInit函数获取这个参数,然后动态创建不同的控件。能满足一般的应用,对于很多控件都需要动态创建的时候,使用太多的IFrame感觉也不太好。
期待更好的解决办法。
地板
发表于 2013-6-9 01:36:10 | 只看该作者
Lisa 发表于 2013-6-7 09:58
我现在的解决办法是通过IFrame来实现的。
点击“按钮”打开一个IFrame,并传递一个参数,在子页面的PageIni ...

能把实例代码贴出来看看吗?我也想知道!
5#
 楼主| 发表于 2013-6-9 15:57:30 | 只看该作者
代码
假设主页面是test.aspx,Body部分
  1. <body>
  2.     <x:PageManager ID="PageManager1" runat="server" AutoSizePanelID="RegionPanel1" />
  3.     <form id="form1" runat="server">
  4.         <x:RegionPanel ID="RegionPanel1" ShowBorder="false" runat="server">
  5.             <Regions>
  6.                 <x:Region ID="Region2" Split="true" Width="200px" Margins="0 0 0 0" ShowHeader="false"
  7.                     Title="目录" EnableCollapse="true" Layout="Fit" Position="Left" runat="server">
  8.                     <Items>
  9.                         <x:Accordion ID="Accordion1" runat="server" ShowBorder="false" ShowHeader="false" ShowCollapseTool="true">
  10.                             <Panes>
  11.                                 <x:AccordionPane ID="AccordionPane1" runat="server" Title="面板一" BodyPadding="2px 5px"
  12.                                     Layout="Fit" ShowBorder="false">
  13.                                     <Items>
  14.                                         <x:Tree runat="server" EnableArrows="true" ShowBorder="false" ShowHeader="false"
  15.                                             AutoScroll="true" ID="treeMenu">
  16.                                             <Nodes>
  17.                                                 <x:TreeNode Text="创建TextBox" Expanded="true" NavigateUrl="test5.aspx?Type=TextBox" Target="main">
  18.                                                 </x:TreeNode>
  19.                                                 <x:TreeNode Text="创建Button" Expanded="true" NavigateUrl="test5.aspx?Type=Button" Target="main">
  20.                                                 </x:TreeNode>
  21.                                             </Nodes>
  22.                                         </x:Tree>
  23.                                     </Items>
  24.                                 </x:AccordionPane>
  25.                             </Panes>
  26.                         </x:Accordion>
  27.                     </Items>
  28.                 </x:Region>
  29.                 <x:Region ID="Region3" ShowHeader="false" EnableIFrame="true" IFrameUrl="index.aspx"
  30.                     IFrameName="main" Margins="0 0 0 0" Position="Center" runat="server">
  31.                 </x:Region>
  32.             </Regions>
  33.         </x:RegionPanel>
  34.     </form>
  35. </body>
复制代码
test5.aspx
  1. <body>
  2.     <x:PageManager ID="PageManager1" runat="server" AutoSizePanelID="Panel1" />
  3.     <form id="form1" runat="server">
  4.         <x:Panel ID="Panel1" runat="server" BodyPadding="5px" ShowBorder="true" ShowHeader="true" Title="Panel">
  5.             <Items></Items>
  6.         </x:Panel>
  7.     </form>
  8. </body>
复制代码
test5.aspx.cs
  1.         protected void Page_Init(object sender, EventArgs e)
  2.         {
  3.             switch (Request.QueryString["Type"].ToString())
  4.             {
  5.                 case "TextBox":
  6.                     FineUI.TextBox tb = new FineUI.TextBox();
  7.                     Panel1.Items.Add(tb);
  8.                     break;
  9.                 case "Button":
  10.                     FineUI.Button bt = new FineUI.Button();
  11.                     Panel1.Items.Add(bt);
  12.                     bt.Text = "Button";
  13.                     break;
  14.             }
  15.         }
复制代码
6#
 楼主| 发表于 2013-6-9 15:59:14 | 只看该作者
猪八戒 发表于 2013-6-9 01:36
能把实例代码贴出来看看吗?我也想知道!

代码已贴。
我的点击事件是TreeNode的,TreeNode有NavigateUrl属性,所以才可以打开Iframe页面。其他类型的Button不知道可不可以
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-28 05:13 , Processed in 0.043825 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表