zoukankan      html  css  js  c++  java
  • 回头看看, UserControl 问题多多.

    微软的 UserControl , 感觉跟用 VB 一样 . 乍用起来,很爽, 深入下去, 很不爽.

    爽就不多说了.说说不爽.

    静态绑定很爽,但是大多数的时候,都需要动态绑定, 到目前为止,我发现最多,最头疼的问题也是动态绑定的机制不同,所造成的效果不同上.

            protected void Page_Load(object sender, EventArgs e)
            {
                this.Controls.Add ( this.LoadControl("b.ascx"));
            }

    注意:不能添加 第一次加载的条件,那样的话,一回发, B.ascx 就会消失.

    这样写,跟 静态绑定是一样的, 很爽.但,更多时候,我们需要把 UserControl 添加到容器中, 比如 Panel . 像这样:

            protected void Page_Load(object sender, EventArgs e)
            {
                this.Panel1.Controls.Add(this.LoadControl("b.ascx"));
            }

    这样的话,问题是: Panel 不能保存子控件内容. 导致 回发, B.ascx 消失.

    换一个方法 this.Controls.AddAt  也不行. 即使用 this.Controls.Add ( this.LoadControl("b.ascx")); , 然后,再把 B.ascx 的内容 “移” 到Panel 中,也不行。

    原因是: UserControl 没有保存子控件内容。

    如何做到保存子控件的内容呢? 这里要用一个控件:

    Code

    即使如此, 在回发的时候,服务器端依然有丢失数据的时候。如下:

    自己封装的双列表 MyGridList2(两个GridView),其中主List更新操作,在页面上运行良好,切换到 UserControl 上,更新的话,找不到 行数据。

    基本上, UserControl 算是个半成品。 慎用! 如果需要复杂应用,可以改用 WebContro l!!

    alarm   作者:NewSea     出处:http://newsea.cnblogs.com/    QQ,MSN:iamnewsea@hotmail.com

      如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
  • 相关阅读:
    [工具推荐]005.Axure RP Pro 7.0模拟C#TAB控件
    [安卓基础] 008.Android中的显示单位
    [JavaWeb基础] 008.Spring初步配置
    [批处理教程之Shell]002.Linux 常用命令大全
    [注]新手学习编程的最佳方式是什么?
    [C#打包部署教程]001.VS2012 + InstallShield
    [站点推荐]001.学习新技能的37个最佳网站(The 37 Best Websites To Learn Something New)
    程序员如何像写代码一样找女朋友
    [工具-006] C#如何模拟发包登录
    [Linux系统] (1)常用操作(CentOS 7.x)
  • 原文地址:https://www.cnblogs.com/newsea/p/1403234.html
Copyright © 2011-2022 走看看