首页 > 开发 > 综合 > 正文

DataGrid常用的使用技巧

2024-07-21 02:15:44
字体:
来源:转载
供稿:网友

1.日期的显示
2.传递datagrid中的值
3.在datagrid里添加确认删除的对话框
4.格式化datagrid :将数据原中的0,1值转换成实际的文字
5.在datagrid中选择,确认,删除多行复选框列表
6.利用dropdownlist下拉列表框,显示数据库表中的某个字段
7.取得datagrid里的checkbox返回值
8.datagrid中加入统计值
9.如何用程序隐藏和显示datagrid中的一列
10如何控制datagrid里编辑功能出现的textbox的宽度?

1.
d  将日显示为不带前导零的数字(如 1)。
dd  将日显示为带前导零的数字(如 01)。
ddd  将日显示为缩写形式(例如 sun)。
dddd  将日显示为全名(例如 sunday)。
m  将月份显示为不带前导零的数字(如一月表示为 1)
mm  将月份显示为带前导零的数字(例如 01/12/01)。
mmm  将月份显示为缩写形式(例如 jan)。
mmmm  将月份显示为完整月份名(例如 january)。
h  使用12 小时制将小时显示为不带前导零的数字(例如 1:15:15 pm)。
hh  使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 pm)。
h  使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)。
hh  使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)。
m  将分钟显示为不带前导零的数字(例如 12:1:15)。
mm  将分钟显示为带前导零的数字(例如 12:01:15)。
s  将秒显示为不带前导零的数字(例如 12:15:5)。
ss  将秒显示为带前导零的数字(例如 12:15:05)。
y  将年份 (0-9) 显示为不带前导零的数字。
yy  以带前导零的两位数字格式显示年份(如果适用)。
yyy  以三位数字格式显示年份。
yyyy  以四位数字格式显示年份。

2.传递datagrid中的值

show.aspx后台代码

private void page_load(object sender, system.eventargs e)
    {
      // 在此处放置用户代码以初始化页面
      response.write("您选择的学生id是:"+request.querystring["id"]);
    }

3.在datagrid里添加确认删除的对话框

private void dgshow_itemcreated(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
    {
      switch(e.item.itemtype)
      {
        case listitemtype.item:
        case listitemtype.edititem:
        case listitemtype.alternatingitem:
          button mydeletebutton = (button)e.item.findcontrol("btndelete");
          mydeletebutton.text = "删除此行";
          mydeletebutton.attributes.add("onclick", "return confirm(’您真的要删除第 " + e.item.itemindex.tostring() + " 行吗?’);");
          break;
      }
    }
    private void dgshow_itemcommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e)
    {
      if(e.commandname=="userdelete")
        dgshow_deletecommand(source,e);
    }

4.将数据原中的0,1值转换成实际的文字

5.在datagrid中选择,确认,删除多行复选框列表

public void checkall(object sender, system.eventargs e)
    {
      checkbox cball = (checkbox)sender;
      if(cball.text=="全选")
      {
        foreach(datagriditem dgi in dgshow.items)
        {
          checkbox cb = (checkbox)dgi.findcontrol("cbselect");
          cb.checked = cball.checked;
        }
      }
    }
    private void btndelete_click(object sender, system.eventargs e)
    {
      foreach(datagriditem dgi in dgshow.items)
      {
        checkbox cb = (checkbox)dgi.findcontrol("cbselect");
        if(cb.checked)
        {
          //以下执行删除操作
          int nid = int.parse(dgi.cells[0].text);
          string strsql = "delete from tbstudentinfo where studentid="+nid;
          executesql(strsql);
        }
      }
      dgshow.currentpageindex = 0;
      binddata();
    }

6.利用dropdownlist下拉列表框,显示数据库表中的某个字段

foreach(datagriditem dgi in dgshow.items)
      {
        //以下绑定非编辑状态下拉列表 
        dropdownlist ddi = (dropdownlist)dgi.findcontrol("ddlsexi");
        if(ddi!=null)
        {
          bool bsex = (bool)ds.tables["studentinfo"].rows[dgi.itemindex]["sex"];
          if(bsex)
            ddi.selectedindex = 0;
          else
            ddi.selectedindex = 1;
        }
        //以下绑定编辑状态下拉列表 
        dropdownlist dde = (dropdownlist)dgi.findcontrol("ddlsexe");
        if(dde!=null)
        {
          bool bsex = (bool)ds.tables["studentinfo"].rows[dgi.itemindex]["sex"];
          if(bsex)
            dde.selectedindex = 0;
          else
            dde.selectedindex = 1;
        }  
      }

7.取得datagrid里的checkbox返回值
8.datagrid中加入统计值

int count=0;
      for (int i = 0; i < ds.tables[0].rows.count; i++)
      {
        count += int.parse(ds.tables[0].rows[i]["score"].tostring());
      }
      int nav = count/ds.tables[0].rows.count;
      foreach(datagriditem dgi in dgshow.controls[0].controls)
      {
        if (dgi.itemtype == listitemtype.footer)
          dgi.cells[6].text = "平均:"+nav.tostring();
      }

9.如何用程序隐藏和显示datagrid中的一列 

dgshow.columns[0].visible = false;

10.如何控制datagrid里编辑功能出现的textbox的宽度?

private void dgshow_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
    {
      if (e.item.itemtype == listitemtype.edititem) 
      {
        for (int i=0;i<e.item.cells.count;i++)
        {
          if(e.item.cells[i].controls.count>0)
          {
              textbox t =(textbox)e.item.cells[i].controls[0];
              t.width=100;
          }
        }
      }
    }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表