声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版。

用户需求

有网友在《FineUI总群1》问这么一个问题:怎么把 HTML 嵌套在控件中?

这是很多刚学习 FineUIMvc 的网友经常问的问题,我想原因是对 WebForms 陷入太深,习惯了 FineUI 控件的 ContentPanel 和 Content 属性。

FineUI 中嵌套 HTML

FineUI中有两种嵌套 HTML 的方法。

方法一:ContentPanel 控件

第一种是 ContentPanel 控件,用来在面板中放置 HTML 标签:

方法二:Content 属性

还有一种方法是面板(Panel,Window,GroupPanel)的 Content 属性,这个更加简洁和通用:

页面效果:

Content 属性还会带来另一个常见问题,那就是如何访问 Content 中定义的控件。

比如上面这个例子,直接页面后台代码中访问 labTextInWindow 是不存在的,我们需要通过 FindControl 来获取 Content 中的控件:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label labTextInWindow = Window2.FindControl("labTextInWindow") as Label;
labTextInWindow.Text = "这是初始值!";
}
} protected void btnChangeText_Click(object sender, EventArgs e)
{
Label labTextInWindow = Window2.FindControl("labTextInWindow") as Label;
labTextInWindow.Text = "这是修改后的值!" + DateTime.Now.ToLongTimeString();
}

FineUIMvc 中嵌套 HTML

在 FineUIMvc 中,没有 ContentPanel 控件,但是嵌套 HTML 会更加更加方便。

方法一:Content 属性

这个方法适合于少量的 HTML 片段,可以直接内联到面板控件中,比如这个示例:

http://fineui.com/demo_mvc/#/demo_mvc/Panel/Panel

F.Panel()
.AutoScroll(true)
.ShowHeader(true)
.EnableCollapse(true)
.BodyPadding()
.Height()
.ShowBorder(true)
.Title("内容面板")
.ID("Panel2")
.Content("可以放置<a href=\"http://www.w3schools.com/html/\" target=\"_blank\">HTML</a>标签。")

显示效果:

方法一:ContentEl 属性

这种方法适合于大多数的情况,比如有很多 HTML 标签, 或者其中嵌套了 ActiveX 控件的情况。

官网示例中有很多,仅举一例说明:http://fineui.com/demo_mvc/#/demo_mvc/Window/Window

<div id="content1">
<p>
<a href="http://tech.163.com/special/jobsdead/" style="font-size: 18px" target="_blank"><b>乔布斯</b></a>
</p>
<p>
乔布斯于1955年2月24日出生,苹果创始人之一。今年8月苹果超越埃克森美孚成为全球最大市值企业,截止上季度持有现金达到762亿美金,甚至超过了美国政府国库存款。
</p>
<p>
遗憾的是,苹果的取得巨大成功还是无法给乔布斯一个健康的身体,乔布斯2003年被发现患有胰脏癌,随后又查出肝癌,危在旦夕的乔布斯在经历了8年的抗癌斗争、3次病休、若干次手术后,于2011年8月25日正式宣布从CEO位置辞职。2011年10月6日,乔布斯在苹果发布iPhone 4S后的第二天与世长辞。
</p>
</div> @(F.Window()
.BodyPadding()
.AutoScroll(true)
.OnClose(Url.Action("Window1_Close"))
.CloseAction(CloseAction.HidePostBack)
.IsModal(false)
.EnableResize(true)
.EnableCollapse(true)
.EnableMaximize(true)
.Title("窗体")
.Icon(Icon.TagBlue)
.Height()
.Width()
.ID("Window1")
.ContentEl("#content1")
.Listener("resize", "onWindowResize")
)

注意,这里的 ContentEl 接受的是一个 jQuery 选择器,本例使用的ID选择器来定位到 content1 的 HTML 片段,当然你也可以使用 Class选择器或者属性选择器,类似这样:

.ContentEl(".mylist[data-tag=red]")

小结

FineUIMvc 作为 ASP.NET MVC 的一个 UI 层的实现,在融入 MVC 架构同时尽可能保留 FineUI 的诸多特性。很多控件和属性的命名都能让 FineUI 开发人员感到亲切,继而喜欢上 MVC 的简洁和灵活。

FineUIMvc随笔 - 怎样在控件中嵌套 HTML的更多相关文章

  1. FineUIMvc随笔(2)怎样在控件中嵌套 HTML

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 有网友在<FineUI总群1>问这么一个问题:怎么把 HTML 嵌套在控件中? 这是很多刚学习 FineU ...

  2. ASP.NET- 查找Repeater控件中嵌套的控件

    如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用Find ...

  3. .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】

    1.首先在前台dataGridview属性中增加onRowDataBound属性事件 2.然后在后台Observing_RowDataBound事件中增加代码 protected void Obser ...

  4. Repeater 控件的嵌套使用

      Repeater 控件的嵌套使用   ItemDataBound:数据绑定的时候(正在进行时)发生,多用在Repeater控件嵌套,对子Repeater控件进行数据绑定及模板列中统计列的计算处理等 ...

  5. PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性不起作用的问题解决办法

    在<PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性>中介绍layout的layoutSizeConstraint属性后,反复测试 ...

  6. 在MonthCalendar控件中选中日期

    Calendar.MONTH Calendar now=Calendar.getInstance();System.out.print(now.get(Calendar.MONTH));得到的月份少1 ...

  7. winform窗体(六)——DataGridView控件及通过此控件中实现增删改查

    DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查 一.后台数据绑定:    List<xxx> list = new List<xxx> ...

  8. Winform(DataGridView)控件及通过此控件中实现增删改查

    DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查 一.后台数据绑定:    List<xxx> list = new List<xxx> ...

  9. 服务器控件中使用<%#...>, JS和html控件中使用<%=...>

    //在服务器控件的属性中,需要用<%#...>来绑定其他控件的ID, 并且要在页面初始方法中,执行Page.DataBind(); <asp:ImageButton ID=" ...

随机推荐

  1. Android 使用AsyncTask 下载图片的例子,学会使用AsyncTask

    1.添加布局文件:activity_main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res ...

  2. Python 线程池的实现

    import urllib2 import time import socket from datetime import datetime from thread_pool import * def ...

  3. Android与Linux以及GNU的关系

    转帖自 http://www.eefocus.com/Kevin/blog/09-11/179409_1dc9a.html 作者: Kevin 本文转贴自 http://mmdays.com/2008 ...

  4. VirtualBox中安装Android-x86详解

    1.下载安装VirtualBox 官网:http://www.virtualbox.org/wiki/Downloads 2.下载Android-x86 官网:http://www.android-x ...

  5. HibernateTemplate实现查询distinct构造对象

    1,hql代码 select distinct new UserLogins( u.username,u.person,u.accName) from UserLogins u where u.ipA ...

  6. (转)java生成UUID通用唯一识别码 (Universally Unique Identifier)

    (原文链接:http://blog.csdn.net/carefree31441/article/details/3998553)   UUID含义是通用唯一识别码 (Universally Uniq ...

  7. Apple官方IOS开发入门教程[v0.2]

    今天,又跑去找IOS开发入门教程了,结果发现没什么好的PDF. 后来发现,原来苹果官方有开发入门教程,而且写的很好.所以整理出来了,给大家分享一下. 我就不在这里贴pdf的内容了,下面有苹果官方教程的 ...

  8. 2017了,回家前 "年末" 分享:下雨,飘雪,红包雨,碰撞球,自定义View

    (本博客为原创:http://www.cnblogs.com/linguanh/) 目录: 效果展示 感想 代码拆解 开源地址 效果展示 有没有兴趣继续看下去,直接看下"颜值"是第 ...

  9. css3 2d转换3d转换以及动画的知识点汇总

    css3 2d转换 2d转换的方法: 1.移动 translate(x, y) 可以改变元素的位置,x.y可为负值: 2.缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,x.y的取值 ...

  10. 《JAVASCRIPT高级程序设计》第四章

    javascript变量是松散类型,它只是在特定时间表示特定值的一个名字而已:变量的值以及类型,可以在脚本的生命周期内改变.变量的类型,分为基本类型和引用类型两种,具体介绍如下图所示: 执行环境是Ja ...