zoukankan      html  css  js  c++  java
  • 第三讲 Web表单高级技巧

    这部分讲得对初学者有点难,我觉得自定义控件,我要好好补上这一课!
    DataGrid, DataList, Repeater
    使用Template
    自定义数据绑定
    <ASP:TEMPLATECOLUMN HeaderText="Country">
     <ITEMTEMPLATE>
      <ASP:LABEL Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Country") %>'></ASP:LABEL>
     </ITEMTEMPLATE>
     <EDITITEMTEMPLATE>
      <ASP:DROPDOWNLIST Runat="server" ID="lstCountries"></ASP:DROPDOWNLIST>
     </EDITITEMTEMPLATE>
    </ASP:TEMPLATECOLUMN>

    *自定义控件
    派生的控件
    用户控件
    复合控件
    自描绘控件
    Designer

    *自描绘控件
    捕获按钮点击事件
    IPostBackEventHandler
    捕获提交来的数据
    IPostBackDataHandler
    使用客户端脚本

    *Designer
    ControlDesigner
    TemplatedControlDesigner
    UserControlDesigner
    TextControlDesigner
    ……

    *使用模板
    ITemplate类型的Property表示一种模板
    模板由框架自动实现

    [TemplateContainer(typeof(MyContainer))]
    public ITemplate ItemTemplate
    {
      get { return itemTemplate; }
      set { itemTemplate=value; }
    }

    itemTemplate.InstantiateIn(this);

    <MY:WEBCUSTOMCONTROL1 runat="server" Text="Hello world!" id="c1">
      <ITEMTEMPLATE>
        <ASP:BUTTON Runat="server" Text=" <%# Container.Text %>"></ASP:BUTTON>
      </ITEMTEMPLATE>
    </MY:WEBCUSTOMCONTROL1>

    private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
      if(e.Item.ItemType==ListItemType.EditItem)
        {
     DropDownList lstCountries=(DropDownList)e.Item.FindControl("lstCountries");

     lstCountries.Items.Add("CN");
     lstCountries.Items.Add("US");
        }
    }

    *在数据绑定中使用模板
    使用专门的 Container 定位数据行
    处理 Postback 时没有数据源的情况
    使用样式单
    Bubble事件

    网上也找到一些组件开发的资料
    开心每一天,幸福每一刻
    http://www.cnblogs.com/suiqirui19872005/category/109018.html

  • 相关阅读:
    ["Visual Studio快捷键" ,"Vs","IDEA快捷键"]
    文件夹
    x
    软考.第一章-信息化和信息系统
    软考.起航篇
    Global.asax.cs 为 /.aspx 执行子请求时出错。 Server.Transfer
    网关我选 Spring Cloud Gateway
    我面向 Google 编程,他面向薪资编程
    JDK 13 都已经发布了,Java 8 依然是最爱
    Spring Cloud 系列之 Spring Cloud Stream
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/1410856.html
Copyright © 2011-2022 走看看