国产探花免费观看_亚洲丰满少妇自慰呻吟_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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沿河| 和龙市| 阿坝县| 璧山县| 友谊县| 犍为县| 济源市| 凤阳县| 绥芬河市| 苏州市| 清丰县| 涞源县| 三台县| 庐江县| 连江县| 察隅县| 仲巴县| 延边| 万荣县| 玉山县| 安徽省| 常宁市| 曲阜市| 武汉市| 临颍县| 西吉县| 铜梁县| 朝阳县| 华容县| 平遥县| 西林县| 古浪县| 泽州县| 普兰县| 民县| 临夏县| 方山县| 固安县| 肥乡县| 张家港市| 商洛市|