DataGrid常用的使用技巧

80酷酷网    80kuku.com

  datagrid|技巧

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;
          }
        }
      }
    }

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: