出现提示框

string strFile="F:""a.doc";//路径根据实际情况而定

if(!System.IO.File.Exists(strFile))

   {

    Response.Write("<script language='javascript'>alert('对不起,文件不存在!');</script>");

    return;

   }

   Response.Clear();

   Response.ClearHeaders();

   Response.Charset = "GB2312";

   Response.ContentEncoding =System.Text.Encoding.UTF8;

   Response.ContentType = "application/octet-stream";

   FileInfo fi=new FileInfo(strFile);

   Response.AddHeader("Content-Disposition","attachment;  filename="  +  HttpUtility.UrlEncode(fi.Name)) ;

   Response.AddHeader("Content-Length",fi.Length.ToString());

   byte[] tmpbyte=new byte[1024*8];

   FileStream fs=fi.OpenRead();

   int count;

   while((count=fs.Read(tmpbyte,0,tmpbyte.Length))>0)

   {

    Response.BinaryWrite(tmpbyte);

    Response.Flush();

   }

   fs.Close();  

   Response.End();

直接在浏览器中打开

   string strFile="F:""a.doc";//路径根据实际情况而定

   Response.Clear();

   Response.ClearHeaders();

   Response.Charset = "GB2312";

   Response.ContentEncoding =System.Text.Encoding.UTF8;

   Response.ContentType = "application/msword";

   Response.WriteFile(strFile);



Window.open()打开一个窗体不被拦截

在DataGrid中建一个模板列,在模板列中放一个客户端的Button,或者直接写你要的字句,然后用<a href>连接

例:

<TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">

    <TR>

     <TD width="100%">

      <asp:datagrid id="dgFreightInfo" runat="server" Width="96%" GridLines="Horizontal" AllowCustomPaging="True"

       AllowPaging="True" AutoGenerateColumns="False" DataKeyField="id" BorderColor="White" BorderWidth="1px"

       PageSize="20">

       <ItemStyle Height="25px" BackColor="#F7F7F7"></ItemStyle>

       <HeaderStyle Font-Bold="True" HorizontalAlign="Center" Height="25px" BackColor="#E8E8E8"></HeaderStyle>

       <Columns>

        <asp:TemplateColumn>

         <ItemTemplate>

          <A href='javascript:onclick=LoadFreight(<%# DataBinder.Eval(Container,"DataItem.id")%>)'>

           详细信息</A>

         </ItemTemplate>

        </asp:TemplateColumn>

       </Columns>

      </asp:datagrid>

     </TD>

    </TR>

然后写一个JavaScript方法

<script language="javascript">

function LoadFreight(id)//id为传进的参数

{

 var url='url.aspx?tid='+id+'';

 window.open(url,'','scrollbars=yes,top=0,left=0,resizable=no,status=no,toolbar=no,menubar=no,location=no,width=430,height=600');

}

</script>



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

}

★特别注意:【?id=】 处不能为 【?id =】


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"


​http://dotnet.aspx.cc/exam/enter2tab.aspx​


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

  }

 

 }



16.模板列

<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:TEMPLATECOLUMN>



<ASP: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.委托讨论

javascript:void(0)

javascript:void(0)


22.读取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:TemplateColumn>


     <asp: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:TemplateColumn>


    <asp: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;i<e.Item.Cells.Count-1;i++)

         if(e.Item.ItemType==ListItemType.EditType)

          {

                 e.Item.Cells[i].Attributes.Add("Width", "80px")


           }  

}



26.对话框

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

 

 }

一.显示消息对话框类

    做项目时总免不了要弹出对话框,或提示用户,或做用户确认。像WinForm下的MessageBox一样很方便,但web下是不是也可以实现呢,答案是肯定的,我简单总结了一下并封装到类,在项目里像WinForm的MessageBox那样直接调用就可以,也可以把它编译成dll作为组件直接调用,并且它也没有弹出对话框时的大白屏现象:)。

     ///<summary>

     ///显示消息提示对话框。

     ///李天平

     /// 2005.10.1

     ///</summary>

     public class MessageBox

     {       

         private MessageBox()

         {            

         }

         ///<summary>

         ///显示消息提示对话框

         ///</summary>

         ///<param name="page">当前页面指针,一般为this</param>

         ///<param name="msg">提示信息</param>

         public static void Show(System.Web.UI.Page page,string msg)

         {

              page.RegisterStartupScript("message","<script language='javascript' defer>alert('"+msg.ToString()+"');</script>");

         }

         ///<summary>

         ///控件点击消息确认提示框

         ///</summary>

         ///<param name="page">当前页面指针,一般为this</param>

         ///<param name="msg">提示信息</param>

         public static void ShowConfirm(System.Web.UI.WebControls.WebControl Control,string msg)

         {

              //Control.Attributes.Add("onClick","if (!window.confirm('"+msg+"')){return false;}");

              Control.Attributes.Add("onclick", "return confirm('" + msg + "');") ;

         }

         ///<summary>

         ///显示消息提示对话框,并进行页面跳转

         ///</summary>

         ///<param name="page">当前页面指针,一般为this</param>

         ///<param name="msg">提示信息</param>

         ///<param name="url">跳转的目标URL</param>

         public static void ShowAndRedirect(System.Web.UI.Page page,string msg,string url)

         {

              StringBuilder Builder=new StringBuilder();

              Builder.Append("<script language='javascript' defer>");

              Builder.AppendFormat("alert('{0}');",msg);

              Builder.AppendFormat("top.location.href='{0}'",url);

              Builder.Append("</script>");

              page.RegisterStartupScript("message",Builder.ToString());


         }

         ///<summary>

         ///输出自定义脚本信息

         ///</summary>

         ///<param name="page">当前页面指针,一般为this</param>

         ///<param name="script">输出脚本</param>

         public static void ResponseScript(System.Web.UI.Page page,string script)

         {

              page.RegisterStartupScript("message","<script language='javascript' defer>"+script+"</script>");

         }

     }



二.页面数据验证类

做项目,特别做MIS,更避免不了有用户输入数据需要做有效性验证,这里我总结封装了一个页面数据校验的工具类,用起来也是很方便。

     ///<summary>

     ///页面数据校验类

     ///李天平

     /// 2004.8

     ///</summary>

     public class PageValidate

     {

         private static Regex RegNumber = new Regex("^[0-9]+$");

         private static Regex RegNumberSign = new Regex("^[+-]?[0-9]+$");

         private static Regex RegDecimal = new Regex("^[0-9]+[.]?[0-9]+$");

         private static Regex RegDecimalSign = new Regex("^[+-]?[0-9]+[.]?[0-9]+$"); //等价于^[+-]?"d+[.]?"d+$

         private static Regex RegEmail = new Regex("^[""w-]+@[""w-]+"".(com|net|org|edu|mil|tv|biz|info)$");//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样

         private static Regex RegCHZN = new Regex("["u4e00-"u9fa5]");


         public PageValidate()

         {

         }

         #region数字字符串检查              

         ///<summary>

         ///检查Request查询字符串的键值,是否是数字,最大长度限制

         ///</summary>

         ///<param name="req">Request</param>

         ///<param name="inputKey">Request的键值</param>

         ///<param name="maxLen">最大长度</param>

         ///<returns>返回Request查询字符串</returns>

         public static string FetchInputDigit(HttpRequest req, string inputKey, int maxLen)

         {

              string retVal = string.Empty;

              if(inputKey != null && inputKey != string.Empty)

              {

                   retVal = req.QueryString[inputKey];

                   if(null == retVal)

                       retVal = req.Form[inputKey];

                   if(null != retVal)

                   {

                       retVal = SqlText(retVal, maxLen);

                       if(!IsNumber(retVal))

                            retVal = string.Empty;

                   }

              }

              if(retVal == null)

                   retVal = string.Empty;

              return retVal;

         }       

         ///<summary>

         ///是否数字字符串

         ///</summary>

         ///<param name="inputData">输入字符串</param>

         ///<returns></returns>

         public static bool IsNumber(string inputData)

         {

              Match m = RegNumber.Match(inputData);

              return m.Success;

         }       

         ///<summary>

         ///是否数字字符串可带正负号

         ///</summary>

         ///<param name="inputData">输入字符串</param>

         ///<returns></returns>

         public static bool IsNumberSign(string inputData)

         {

              Match m = RegNumberSign.Match(inputData);

              return m.Success;

         }       

         ///<summary>

         ///是否是浮点数

         ///</summary>

         ///<param name="inputData">输入字符串</param>

         ///<returns></returns>

         public static bool IsDecimal(string inputData)

         {

              Match m = RegDecimal.Match(inputData);

              return m.Success;

         }       

         ///<summary>

         ///是否是浮点数可带正负号

         ///</summary>

         ///<param name="inputData">输入字符串</param>

         ///<returns></returns>

         public static bool IsDecimalSign(string inputData)

         {

              Match m = RegDecimalSign.Match(inputData);

              return m.Success;

         }

         #endregion


         #region中文检测

         ///<summary>

         ///检测是否有中文字符

         ///</summary>

         ///<param name="inputData"></param>

         ///<returns></returns>

         public static bool IsHasCHZN(string inputData)

         {

              Match m = RegCHZN.Match(inputData);

              return m.Success;

         }

         #endregion


         #region邮件地址

         ///<summary>

         ///是否是浮点数可带正负号

         ///</summary>

         ///<param name="inputData">输入字符串</param>

         ///<returns></returns>

         public static bool IsEmail(string inputData)

         {

              Match m = RegEmail.Match(inputData);

              return m.Success;

         }

         #endregion


         #region其他

         ///<summary>

         ///检查字符串最大长度,返回指定长度的串

         ///</summary>

         ///<param name="sqlInput">输入字符串</param>

         ///<param name="maxLength">最大长度</param>

         ///<returns></returns>         

         public static string SqlText(string sqlInput, int maxLength)

         {            

              if(sqlInput != null && sqlInput != string.Empty)

              {

                   sqlInput = sqlInput.Trim();                            

                   if(sqlInput.Length > maxLength)//按最大长度截取字符串

                       sqlInput = sqlInput.Substring(0, maxLength);

              }

              return sqlInput;

         }       

         ///<summary>

         ///字符串编码

         ///</summary>

         ///<param name="inputData"></param>

         ///<returns></returns>

         public static string HtmlEncode(string inputData)

         {

              return HttpUtility.HtmlEncode(inputData);

         }

         ///<summary>

         ///设置Label显示Encode的字符串

         ///</summary>

         ///<param name="lbl"></param>

         ///<param name="txtInput"></param>

         public static void SetLabel(Label lbl, string txtInput)

         {

              lbl.Text = HtmlEncode(txtInput);

         }

         public static void SetLabel(Label lbl, object inputObj)

         {

              SetLabel(lbl, inputObj.ToString());

         }       


         #endregion

}