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)