对DataGrid的基础操作总结

添加人:vs2005一级(340分)   添加时间:2007-09-04    阅读次数:2544  收藏此教程

1.删除表格选定记录

1 int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
2 string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() ;


 
2.删除表格记录警告

 1 private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e) //在创建项时激发
 2 {
 3  switch(e.Item.ItemType)
 4  {
 5   case ListItemType.Item :
 6   case ListItemType.AlternatingItem :
 7   case ListItemType.EditItem:
 8    TableCell myTableCell;
 9    myTableCell = e.Item.Cells[14];
10    LinkButton myDeleteButton ;
11    myDeleteButton = (LinkButton)myTableCell.Controls[0];
12    myDeleteButton.Attributes.Add("onclick","return confirm('您是否确定要删除这条信息');");
13    break;
14   default:
15    break;
16  }
17 }

 
3.点击表格行链接另一页

1 private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
2 {
3     //点击表格打开
4     if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
5     e.Item.Attributes.Add("onclick","window.open('Default.ASPx?id=" + e.Item.Cells[0].Text + "');");
6 }
7 
在itemDataBind事件中
 1 if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
 2 {
 3     string OrderItemID =e.item.cells[1].Text;
 4     ...
 5     e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.ASPx?id=" + OrderItemID + "'");
 6 }
 7 //双击表格打开新一页
 8 if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
 9 {
10     string OrderItemID =e.item.cells[1].Text;
11     ...
12     e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.ASPx?id=" + OrderItemID + "')");
13 }
14 

4.表格超连接列传递参数

1 <ASP:HyperLinkColumn Target="_blank" headertext="ID号" DataTextField="id" NavigateUrl="aaa.ASPx?id='<%# DataBinder.Eval(Container.DataItem, "数据字段1")%>' & name='<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>' />
 
5.表格点击改变颜色
 1 if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
 2 {
 3  e.Item.Attributes.Add("onclick","this.style.backgroundColor='#99cc00';
 4  this.style.color='buttontext';this.style.cursor='default';");
 5 }
 6 
 7 //写在DataGrid的_ItemDataBound里
 8 if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
 9 {
10  e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#99cc00';
11  this.style.color='buttontext';this.style.cursor='default';");
12  e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='';this.style.color='';");
13 }
14 
15 

6.关于日期格式

日期格式设定

DataFormatString="{0:yyyy-MM-dd}"
我觉得应该在itembound事件中

e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd")) ;
7.获取错误信息并到指定页面

不要使用Response.Redirect,而应该使用Server.Transfer

e.g :

// in global.asax
protected void Application_Error(Object sender, EventArgs e) {
 if (Server.GetLastError() is HttpUnhandledException)
 Server.Transfer("MyErrorPage.ASPx");

 //其余的非HttpUnhandledException异常交给ASP.net自己处理就okay了 :)
}
Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理

8.实现全选
 1 protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
 2 {
 3  //改变列的选定,实现全选或全不选。
 4  CheckBox chkEXPort ;
 5  if( CheckAll.Checked)
 6  {
 7   foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
 8   {
 9    chkEXPort = (CheckBox)oDataGridItem.FindControl("chkEXPort");
10    chkEXPort.Checked = true;
11   }
12  }
13  else 
14  {
15   foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
16   {
17    chkEXPort = (CheckBox)oDataGridItem.FindControl("chkEXPort");
18    chkEXPort.Checked = false;
19   }
20  }
21 }

9.数字格式化

【<%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?】

<%#Container.DataItem("price","{0:¥#,##0.00}")%>

int i=123456;
string s=i.ToString("###,###.00");
10.日期格式化

【ASPx页面内:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%> 显示为: 2004-8-11 19:44:28 我只想要:2004-8-11 】

<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>
应该如何改?

【格式化日期】

取出来,一般是object((DateTime)objectFromDB).ToString("yyyy-MM-dd");

【日期的验证表达式】

A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]

^((\d{2}(([02468][048])([13579][26]))[\-\/\s]?((((0?[13578])(1[02]))[\-\/\s]?((0?[1-9])([1-2][0-9])(3[01])))(((0?

[469])(11))[\-\/\s]?((0?[1-9])([1-2][0-9])(30)))(0?2[\-\/\s]?((0?[1-9])([1-2][0-9])))))(\d{2}(([02468][1235679])

([13579][01345789]))[\-\/\s]?((((0?[13578])(1[02]))[\-\/\s]?((0?[1-9])([1-2][0-9])(3[01])))(((0?[469])(11))[\-\/

\s]?((0?[1-9])([1-2][0-9])(30)))(0?2[\-\/\s]?((0?[1-9])(1[0-9])(2[0-8]))))))(\s(((0?[1-9])(1[0-2]))\:([0-5][0-9])

((\s)(\:([0-5][0-9])\s))([AMPMampm]{2,2})))?$
B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03]

^\d{4}[\-\/\s]?((((0[13578])(1[02]))[\-\/\s]?(([0-2][0-9])(3[01])))(((0[469])(11))[\-\/\s]?(([0-2][0-9])(30)))(02[\

-\/\s]?[0-2][0-9]))$
【大小写转换】

HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string) 
2页 第1上一页12下一页
相关的教程: DataGrid 基础操作
收藏此教程

当前平均分: 0.0(0 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: