惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
Jina AI
Jina AI
雷峰网
雷峰网
月光博客
月光博客
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
B
Blog RSS Feed
美团技术团队
C
CXSECURITY Database RSS Feed - CXSecurity.com
小众软件
小众软件
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
Last Week in AI
Last Week in AI
A
Arctic Wolf
Latest news
Latest news
Attack and Defense Labs
Attack and Defense Labs
I
Intezer
F
Fortinet All Blogs
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog
S
Secure Thoughts
Help Net Security
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
V
Visual Studio Blog
P
Proofpoint News Feed
博客园 - 【当耐特】
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
Stack Overflow Blog
Stack Overflow Blog
Know Your Adversary
Know Your Adversary
云风的 BLOG
云风的 BLOG
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
H
Help Net Security
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tenable Blog
Cloudbric
Cloudbric
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog

博客园 - 阿正

团队开发首要考虑的是什么?! VS 2008下载 orcas下载 asp.net 制作安装包并自动安装SQL数据库 从配置中获取连接字符串信息是出现以下错误 无法获取 web 应用程序服务 NET平台下WEB应用程序的部署(安装数据库和自动配置) IT人为什么拿不到高薪 VS2005 下载 PetShop 4.0 下载 ASP.NET 注册IIS vss2005 Internet配置 vs2005 下载 程序员的七种武器 如何部署包含水晶报表的程序 ASP.NET下水晶报表的导出成pdf格式的方法 ASP.NET下水晶报表的导出成pdf格式的方法 微软(中国)MSDN讲师推荐设计模式资源 VS2005免费下载 IT这条路应该怎样走? 程序员四大忌
ASP.NET程序中常用的三十三种代码
阿正 · 2006-01-18 · via 博客园 - 阿正

VS2005中文正式版 下载

 

ASP.NET程序中常用的三十三种代码                      ----------转自CSDN

1. 打开新的窗口并传送参数:                                                                                                     传送参数:

response.write("scriptwindow.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+")/script")

string a = Request.QueryString("id");
string b = Request.QueryString("id1");

Button1.Attributes.Add("onclick","return confirm(’确认?)");
button.attributes.add("onclick","if(confirm(’are you sure...?’)){return true;}else{return false;}")

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

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

}

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 + "’)");
}

asp:HyperLinkColumn Target="_blank" headertext="ID" DataTextField="id" NavigateUrl="aaa.aspx?id=’
%# DataBinder.Eval(Container.DataItem, "数据字段1")%>’ & name=’<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>’ /

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=’’;");
}

DataFormatString="{0:yyyy-MM-dd}"

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会导致postback的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 10.清空Cookie

Cookie.Expires=[DateTime];
Response.Cookies("UserName").Expires = 0

//自定义异常处理类
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

asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel

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"

DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}"

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"+"\"");
}
}

ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID"
ITEMTEMPLATE
ASP:LABEL text=’<%# DataBinder.Eval(Container.DataItem, "ArticleID")%>’ runat="server" width="80%" id="lblColumn" /
/ITEMTEMPLATE
/ASP:TEMPLATECOLUMNASP:TEMPLATECOLUMN headertext="选中"
HEADERSTYLE wrap="False" horizontalalign="Center"></HEADERSTYLE
ITEMTEMPLATE
ASP:CHECKBOX id="chkExport" runat="server" /
/ITEMTEMPLATE
EDITITEMTEMPLATE
ASP:CHECKBOX id="chkExportON" runat="server" enabled="true" /
/EDITITEMTEMPLATE
/ASP:TEMPLATECOLUMN

protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
{
//改变列的选定,实现全选或全不选。
CheckBox chkExport ;
if( CheckAll.Checked)
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = true;
}
}
else
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = false;
}
}
}


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

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

int i=123456;
string s=i.ToString("###,###.00");


18.
日期格式化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))([AM|PM|am|pm]{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)


19.如何设定全局变量 Global.asax Application_Start()事件中 添加Application[属性名] xxx; 就是你的全局变量 20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口? HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank")ASPNETMENU】点击菜单项弹出新窗口 在你的menuData.xml文件的菜单项中加入URLTarget="_blank",如:

?xml version="1.0" encoding="GB2312"?
MenuData ImagesBaseURL="images/"
MenuGroup
MenuItem Label="内参信息" URL="Infomation.aspx"
MenuGroup ID="BBC"
MenuItem Label="公告信息" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/
MenuItem Label="编制信息简报" URL="NewInfo.aspx" LeftIcon="file.gif" /
......


最好将你的aspnetmenu升级到1.2 21.读取DataGrid控件TextBox

foreach(DataGrid dgi in yourDataGrid.Items)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
tb.Text....
}


23.DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能? 〖思归〗

asp:TemplateColumn HeaderText="数量"
ItemTemplate
asp:TextBox id="ShuLiang" runat=server Text=’<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>’
onkeyup="javascript:DoCal()"
/
asp:RegularExpressionValidator id="revS" runat="server" ControlToValidate="ShuLiang" ErrorMessage="must be integer" ValidationExpression="^\d+$" /
/ItemTemplate
/asp:TemplateColumnasp:TemplateColumn HeaderText="单价"
ItemTemplate
asp:TextBox id="DanJian" runat=server Text=’<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>’
onkeyup="javascript:DoCal()"
/
asp:RegularExpressionValidator id="revS2" runat="server" ControlToValidate="DanJian" ErrorMessage="must be numeric" ValidationExpression="^\d+(\.\d*)?$" //ItemTemplate
/asp:TemplateColumnasp:TemplateColumn HeaderText="金额"
ItemTemplate
asp:TextBox id="JinE" runat=server Text=’<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>’ /
/ItemTemplate
/asp:TemplateColumn><script language="javascript"
function DoCal()
{
var e = event.srcElement;
var row = e.parentNode.parentNode;
var txts = row.all.tags("INPUT");
if (!txts.length || txts.length 3)
return; var q = txts[txts.length-3].value;
var p = txts[txts.length-2].value; if (isNaN(q) || isNaN(p))
return; q = parseInt(q);
p = parseFloat(p); txts[txts.length-1].value = (q * p).toFixed(2);
}
/script


24.datagrid
选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了。

page_load
page.smartNavigation=true


25.Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ?

private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
{
for(int i=0;ie.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells[i].Attributes.Add("Width", "80px")
}
}

private static string ScriptBegin = "script language=\"JavaScript\"";
private static string ScriptEnd = "
/script";

public static void ConfirmMessageBox(string PageTarget,string Content)
{

string ConfirmContent="var retValue=window.confirm(’"+Content+"’);"+"if(retValue){window.location=’"+PageTarget+"’;}"; ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd; Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
//Response.Write(strScript);
}


27. 将时间格式化:string aa=DateTime.Now.ToString("yyyyMMdd"); 1.1 取当前年月日时分秒

currentTime=System.DateTime.Now;

int = DateTime.Now.Year;

int = DateTime.Now.Month;

int = DateTime.Now.Hour;

int = DateTime.Now.Minute;

int = DateTime.Now.Second;

int 毫秒= DateTime.Now.Millisecond;

public static int pageCount; //总页面数
public static int curPageIndex=1; //
当前页面

if(DataGrid1.CurrentPageIndex (DataGrid1.PageCount - 1))
{
DataGrid1.CurrentPageIndex += 1;
curPageIndex+=1;
}

bind(); // DataGrid1

数据绑定函数

if(DataGrid1.CurrentPageIndex 0)
{
DataGrid1.CurrentPageIndex += 1;
curPageIndex-=1;
}

bind(); // DataGrid1

数据绑定函数

int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值

if(a

DataGrid1.PageCount)
{
this.DataGrid1.CurrentPageIndex=a;
}

bind();

private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem)
{
((LinkButton)di.Cells[8].Controls[0]).Attributes.Add("onclick","return confirm(’确认删除此项吗?);");
}
}
}

ListItemType itemType = e.Item.ItemType;

if (itemType == ListItemType.Item )
{

e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor=’#FFFFFF’;";
e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor=’#d9ece1’;cursor=’hand’;" ;
}
else if( itemType == ListItemType.AlternatingItem)
{
e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor=’#a0d7c4’;";
e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor=’#d9ece1’;cursor=’hand’;" ;
}

DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //执行sql返回的DataTable
DataColumn dc=dt.Columns.Add("number",System.Type.GetType("System.String"));

for(int i=0;i

dt.Rows.Count;i++)
{
dt.Rows[i]["number"]=(i+1).ToString();
}

DataGrid1.DataSource=dt;
DataGrid1.DataBind();


DataGrid1中添加一个CheckBox,页面中添加一个全选框

private void CheckBox2_CheckedChanged(object sender, System.EventArgs e)
{
foreach(DataGridItem thisitem in DataGrid1.Items)
{
((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked;
}
}

foreach(DataGridItem thisitem in DataGrid1.Items)
{
if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked)
{
string strloginid= DataGrid1.DataKeys[thisitem.ItemIndex].ToString();
Del (strloginid); //删除函数
}
}


30.当文件在不同目录下,需要获取数据库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化) Application_Start中添加以下代码:

Application["ConnStr"]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.
AppSettings["ConnStr"].ToString();


31 变量.ToString() 字符型转换 转为字符串

12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //
生成 12,345.00
12345.ToString("e"); //
生成 1.234500e+004
12345.ToString("f4"); //
生成 12345.0000
12345.ToString("x"); //
生成 3039 (16进制)
12345.ToString("p"); //
生成 1,234,500.00%


32、变量.Substring(参数1,参数2); 截取字串的一部分,参数1为左起始位数,参数2为截取几位。 如:string s1 = str.Substring(0,2); 33.在自己的网站上登陆其他网站:(如果你的页面是通过嵌套方式的话,因为一个页面只能有一个FORM,这时可以导向另外一个页面再提交登陆信息)

SCRIPT language="javascript"
!--
function gook(pws)
{
frm.submit();
}
//--
/SCRIPT body leftMargin="0" topMargin="0" onload="javascript:gook()" marginwidth="0" marginheight="0"
form name="frm" action=" http://220.194.55.68:6080/login.php?retid=7259 " method="post"
tr
td
input id="f_user" type="hidden" size="1" name="f_user" runat="server"
input id="f_domain" type="hidden" size="1" name="f_domain" runat="server"
input class="box" id="f_pass" type="hidden" size="1" name="pwshow" runat="server" INPUT id="lng" type="hidden" maxLength="20" size="1" value="5" name="lng"
INPUT id="tem" type="hidden" size="1" value="2" name="tem" /td /tr /form


文本框的名称必须是你要登陆的网页上的名称,如果源码不行可以用vsniffer 看看。 下面是获取用户输入的登陆信息的代码:

string name;
name=Request.QueryString["EmailName"];

try
{

int a=name.IndexOf("@",0,name.Length);
f_user.Value=name.Substring(0,a);
f_domain.Value=name.Substring(a+1,name.Length-(a+1));
f_pass.Value=Request.QueryString["Psw"];
}

catch
{

Script.Alert("错误的邮箱!");
Server.Transfer("index.aspx");
}