1
. 打开新的窗口并传送参数:
传送参数:
response.write(
"
<script>window.open('*.aspx?id=
"
+
this
.DropDownList1.SelectIndex
+
"
&id1=
"
+
...
+
"
')</script>
"
)
接收参数:
string
a
=
Request.QueryString(
"
id
"
);
string
b
=
Request.QueryString(
"
id1
"
);
2
.为按钮添加对话框
Button1.Attributes.Add(
"
onclick
"
,
"
return confirm('确认?')
"
);
button.attributes.add(
"
onclick
"
,
"
if(confirm('are you sure...?')){return true;}else{return false;}
"
)
3
.删除表格选定记录
int
intEmpID
=
(
int
)MyDataGrid.DataKeys[e.Item.ItemIndex];
string
deleteCmd
=
"
Delete from Employee where emp_id =
"
+
intEmpID.ToString()
4
.删除表格记录警告
private
void
DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
switch
(e.Item.ItemType)
{
case
ListItemType.Item :
case
ListItemType.AlternatingItem :
case
ListItemType.EditItem:
TableCell myTableCell;
myTableCell
=
e.Item.Cells[
14
];
LinkButton myDeleteButton ;
myDeleteButton
=
(LinkButton)myTableCell.Controls[
0
];
myDeleteButton.Attributes.Add(
"
onclick
"
,
"
return confirm('您是否确定要删除这条信息');
"
);
break
;
default
:
break
;
}
}
5
.点击表格行链接另一页
private
void
grdCustomer_ItemDataBound(
object
sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//
点击表格打开
if
(e.Item.ItemType
==
ListItemType.Item e.Item.ItemType
==
ListItemType.AlternatingItem)
e.Item.Attributes.Add(
"
onclick
"
,
"
window.open('Default.aspx?id=
"
+
e.Item.Cells[
0
].Text
+
"
');
"
);
}
双击表格连接到另一页
在itemDataBind事件中
if
(e.Item.ItemType
==
ListItemType.Item e.Item.ItemType
==
ListItemType.AlternatingItem)
{
string
orderItemID
=
e.item.cells[
1
].Text;
...
e.item.Attributes.Add(
"
ondblclick
"
,
"
location.href='../ShippedGrid.aspx?id=
"
+
orderItemID
+
"
'
"
);
}
双击表格打开新一页
if
(e.Item.ItemType
==
ListItemType.Item e.Item.ItemType
==
ListItemType.AlternatingItem)
{
string
orderItemID
=
e.item.cells[
1
].Text;
...
e.item.Attributes.Add(
"
ondblclick
"
,
"
open('../ShippedGrid.aspx?id=
"
+
orderItemID
+
"
')
"
);
}
6
.表格超连接列传递参数
<asp:HyperLinkColumn Target
=
"
_blank
"
headertext
=
"
ID号
"
DataTextField
=
"
id
"
NavigateUrl
=
"
aaa.aspx?id='
<
%
# DataBinder.Eval(Container.DataItem,
"
数据字段1
"
)
%
>
'
& name=
'
<
%
# DataBinder.Eval(Container.DataItem,
"
数据字段2
"
)
%
>
'
/>
7
.表格点击改变颜色
if
(e.Item.ItemType
==
ListItemType.Item e.Item.ItemType
==
ListItemType.AlternatingItem)
{
e.Item.Attributes.Add(
"
onclick
"
,
"
this.style.backgroundColor='#99cc00';
this
.style.color
=
'
buttontext
'
;
this
.style.cursor
=
'
default
'
;
"
);
}
写在DataGrid的_ItemDataBound里
if
(e.Item.ItemType
==
ListItemType.Item e.Item.ItemType
==
ListItemType.AlternatingItem)
{
e.Item.Attributes.Add(
"
onmouseover
"
,
"
this.style.backgroundColor='#99cc00';
this
.style.color
=
'
buttontext
'
;
this
.style.cursor
=
'
default
'
;
"
);
e.Item.Attributes.Add(
"
onmouseout
"
,
"
this.style.backgroundColor='';this.style.color='';
"
);
}
8
.关于日期格式
日期格式设定
DataFormatString
=
"
{0:yyyy-MM-dd}
"
我觉得应该在itembound事件中
e.items.cell[
"
你的列
"
].text
=
DateTime.Parse(e.items.cell[
"
你的列
"
].text.ToString(
"
yyyy-MM-dd
"
))
9
.获取错误信息并到指定页面
不要使用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的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理
10
.清空Cookie
Cookie.Expires
=
[DateTime];
Response.Cookies(
"
UserName
"
).Expires
=
0
11
.自定义异常处理
//
自定义异常处理类
using
System;
using
System.Diagnostics;
namespace
MyAppException
{
///
<summary>
///
从系统异常类ApplicationException继承的应用程序异常处理类。
///
自动将异常内容记录到Windows NT/2000的应用程序日志
///
</summary>
public
class
AppException:System.ApplicationException
{
public
AppException()
{
if
(ApplicationConfiguration.EventLogEnabled)LogEvent(
"
出现一个未知错误。
"
);
}
public
AppException(
string
message)
{
LogEvent(message);
}
public
AppException(
string
message,Exception innerException)
{
LogEvent(message);
if
(innerException
!=
null
)
{
LogEvent(innerException.Message);
}
}
//
日志记录类
using
System;
using
System.Configuration;
using
System.Diagnostics;
using
System.IO;
using
System.Text;
using
System.Threading;
namespace
MyEventLog
{
///
<summary>
///
事件日志记录类,提供事件日志记录支持
///
<remarks>
///
定义了4个日志记录方法 (error, warning, info, trace)
///
</remarks>
///
</summary>
public
class
ApplicationLog
{
///
<summary>
///
将错误信息记录到Win2000/NT事件日志中
///
<param name="message">需要记录的文本信息</param>
///
</summary>
public
static
void
WriteError(String message)
{
WriteLog(TraceLevel.Error, message);
}
///
<summary>
///
将警告信息记录到Win2000/NT事件日志中
///
<param name="message">需要记录的文本信息</param>
///
</summary>
public
static
void
WriteWarning(String message)
{
WriteLog(TraceLevel.Warning, message);
}
///
<summary>
///
将提示信息记录到Win2000/NT事件日志中
///
<param name="message">需要记录的文本信息</param>
///
</summary>
public
static
void
WriteInfo(String message)
{
WriteLog(TraceLevel.Info, message);
}
///
<summary>
///
将跟踪信息记录到Win2000/NT事件日志中
///
<param name="message">需要记录的文本信息</param>
///
</summary>
public
static
void
WriteTrace(String message)
{
WriteLog(TraceLevel.Verbose, message);
}
///
<summary>
///
格式化记录到事件日志的文本信息格式
///
<param name="ex">需要格式化的异常对象</param>
///
<param name="catchInfo">异常信息标题字符串.</param>
///
<retvalue>
///
<para>格式后的异常信息字符串,包括异常内容和跟踪堆栈.</para>
///
</retvalue>
///
</summary>
public
static
String FormatException(Exception ex, String catchInfo)
{
StringBuilder strBuilder
=
new
StringBuilder();
if
(catchInfo
!=
String.Empty)
{
strBuilder.Append(catchInfo).Append(
"
/r/n
"
);
}
strBuilder.Append(ex.Message).Append(
"
/r/n
"
).Append(ex.StackTrace);
return
strBuilder.ToString();
}
///
<summary>
///
实际事件日志写入方法
///
<param name="level">要记录信息的级别(error,warning,info,trace).</param>
///
<param name="messageText">要记录的文本.</param>
///
</summary>
private
static
void
WriteLog(TraceLevel level, String messageText)
{
try
{
EventLogEntryType LogEntryType;
switch
(level)
{
case
TraceLevel.Error:
LogEntryType
=
EventLogEntryType.Error;
break
;
case
TraceLevel.Warning:
LogEntryType
=
EventLogEntryType.Warning;
break
;
case
TraceLevel.Info:
LogEntryType
=
EventLogEntryType.Information;
break
;
case
TraceLevel.Verbose:
LogEntryType
=
EventLogEntryType.SuccessAudit;
break
;
default
:
LogEntryType
=
EventLogEntryType.SuccessAudit;
break
;
}
EventLog eventLog
=
new
EventLog(
"
Application
"
, ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
//
写入事件日志
eventLog.WriteEntry(messageText, LogEntryType);
}
catch
{}
//
忽略任何异常
}
}
//
class ApplicationLog
}
12
.Panel 横向滚动,纵向自动扩展
<asp:panel style
=
"
overflow-x:scroll;overflow-y:auto;
"
><
/
asp:panel>
13
.回车转换成Tab
<script language
=
"
javascript
"
for
=
"
document
"
event
=
"
onkeydown
"
>
if
(
event
.keyCode
==
13
&&
event
.srcElement.type
!=
'
button
'
&&
event
.srcElement.type
!=
'
submit
'
&&
event
.srcElement.type
!=
'
reset
'
&&
event
.srcElement.type
!=
''
&&
event
.srcElement.type
!=
'
textarea
'
);
event
.keyCode
=
9
;
<
/
script>
onkeydown
=
"
if(event.keyCode==13) event.keyCode=9
"
14
.DataGrid超级连接列
DataNavigateUrlField
=
"
字段名
"
DataNavigateUrlFormatString
=
"
http://xx/inc/delete.aspx?ID={0}
"
15
.DataGrid行随鼠标变色
private
void
DGzf_ItemDataBound(
object
sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if
(e.Item.ItemType
!=
ListItemType.Header)
{
e.Item.Attributes.Add(
"
onmouseout
"
,
"
this.style.backgroundColor=/"
"
+
e.Item.Style[
"
BACKGROUND-COLOR
"
]
+
"
/"
"
);
e.Item.Attributes.Add(
"
onmouseover
"
,
"
this.style.backgroundColor=/"
"
+
"
#EFF3F7
"
+
"
/"
"
);
}
}