国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET 2.0 中動態添加 GridView 模板列

2024-07-10 13:12:35
字體:
來源:轉載
供稿:網友

  動態添加列,關鍵是實現 itemplate.instantiatein 方法。下面是一個添加 gridview 模板列的例子。

  c#代碼

<%[email protected] page language="c#" %>
<%[email protected] import namespace="system.data" %>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
 "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

<script runat="server">...
  icollection createdatasource()
  ...{
    datatable dt = new datatable();
    datarow dr;
    dt.columns.add(new datacolumn("id", typeof(int32)));
    dt.columns.add(new datacolumn("text", typeof(string)));
    for (int i = 0; i < 6; i++)
    ...{
      dr = dt.newrow();
      dr[0] = i;
      dr[1] = "列表項目 " + i.tostring();
      dt.rows.add(dr);
    }
    dataview dv = new dataview(dt);
    return dv;
  }

  public class gridviewtemplate : itemplate
  ...{
    private datacontrolrowtype templatetype;
    private string columnname;

    public gridviewtemplate( datacontrolrowtype type, string colname )
    ...{
      templatetype = type;
      columnname = colname;
    }

    public void instantiatein( system.web.ui.control container )
    ...{
      switch (templatetype)
      ...{
        case datacontrolrowtype.header:
          literal lc = new literal();
          lc.text = columnname;         
          container.controls.add(lc);         
          break;
        case datacontrolrowtype.datarow:
          dropdownlist drr = new dropdownlist();
          drr.id = "dropdown";
          drr.appenddatabounditems = true;
          drr.items.add(new listitem("-----請選擇------",""));
          drr.items.add(new listitem("aa", "a"));
          drr.items.add(new listitem("bb", "b"));
          drr.items.add(new listitem("cc", "c"));
          container.controls.add(drr);
          break;
        default:
         break;
      }
    }
  }
 
  protected void page_load(object sender, eventargs e)
  ...{
    if (!ispostback)
    ...{
      templatefield customfield = new templatefield();
      customfield.showheader = true;
      customfield.headertemplate = new gridviewtemplate(datacontrolrowtype.header, "動態添加列");
      customfield.itemtemplate = new gridviewtemplate(datacontrolrowtype.datarow, "");
      gridview1.columns.add(customfield);
      gridview1.datasource = createdatasource();
      gridview1.databind();
    }
  }

  protected void gridview1_rowdatabound( object sender, gridviewroweventargs e )
  ...{
    if (e.row.rowtype == datacontrolrowtype.datarow)
    ...{
      //可以在這里訪問數據庫的其它字段的值,可以設置默認選擇項,具體應用,看自己的發揮了。
      //下面只是例子,舉一反三,不再費話了
      datarowview gv = (datarowview)e.row.dataitem;
      int itemseleted = int32.parse(gv.row["id"].tostring()) > 3 ? 0 : int32.parse(gv.row["id"].tostring());
      dropdownlist dr = (dropdownlist)e.row.findcontrol("dropdown");
      dr.selectedindex = itemseleted;
    }
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="head1" runat="server">
  <title>gridview動態添加模板列的例子</title>
</head>
<body>
<form id="form1" runat="server">
  <asp:gridview id="gridview1" runat="server" autogeneratecolumns="false"
     onrowdatabound="gridview1_rowdatabound">
    <columns>
      <asp:boundfield headertext="標題"  datafield="text"/>
    </columns>
  </asp:gridview>
</form>
</body>
</html>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 若羌县| 应城市| 双城市| 鄱阳县| 枣强县| 崇阳县| 潞城市| 嘉祥县| 濮阳县| 施秉县| 巴中市| 柳林县| 灵寿县| 和田市| 水城县| 仁怀市| 精河县| 江安县| 崇明县| 什邡市| 威宁| 舒兰市| 清镇市| 白朗县| 昭苏县| 中卫市| 邯郸市| 包头市| 三穗县| 大关县| 增城市| 左贡县| 娄底市| 营山县| 邹平县| 乌什县| 搜索| 凉山| 丹凤县| 双峰县| 桐乡市|