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

  • 相关阅读:
    BZOJ1040: [ZJOI2008]骑士
    酱油记:GDKOI2018
    BZOJ1800: [Ahoi2009]fly 飞行棋
    BZOJ3894: 文理分科
    树链剖分
    文件格式问题
    10.23模拟赛
    snakes
    数据结构题目
    jquery&nbsp;easyui&nbsp;datebox&nbsp;的使用&nbsp;.
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/1410856.html
Copyright © 2011-2022 走看看