Net/WEB开发常用的方法、函数

来源:互联网 发布:微信文章网站源码 编辑:程序博客网 时间:2024/05/17 01:45
ColumnsNames(i) = DS.Tables(0).Columns(i).ColumnName.ToString()  
   
  <script language="javascript">  
  showModalDialog(...);  
  </script>  
   
  this.TextboxStartDate.Text=Convert.ToDateTime(dr["StartDate"]).ToString("yyyy-MM-dd");  
   
  //省略字符串后面内容  
  SUBSTRING ( expression , start , length )  
  select substring(字段1,0,20)+'...' as A from 表名  
   
  CSS中的textOverflow属性可以将过多的文字用省略号进行表示,语法如下:  
  <SPAN   
  style="width:100px;overflow:hidden;text-overflow:ellipsis;">  
  <NOBR>text to display</NOBR>  
  </SPAN>  
  其中overflow必须设置为hidden。  
  通过这样的样式单我们可以实现在DataGrid中某个Column由于字符串太长,而用固定的字数再加上省略号来进行表示。   
   
  //改变绑定项的值  
  <%#Container.DataItem("sex").ToString=="1"?男:女%>  
  <%# ((int)DataBinder.Eval(Container.DataItem,"Agenda")==0)?"女":"男" %>  
  做一个判别程序  
  public string strsex(string str)  
  {  
  if(str == 1)  
  return str = "男";  
  if(str == 0)  
  return str = "女";  
  }  
  然后在页面绑定的时候就写  
  '<%# strsex(DataBinder.Eval(Container.DataItem,"字段名").ToString()) %>'  
  方法三:  
  Select case Sex when 0 then '女' else '男' End as Sex,其它字段 from 表名  
   
  对于数字型号进行类型转换成数字  
  Convert.ToInt16();  
  对于字符型对单引号替换成两个单引号  
  string.Raplace("'","''");  
  string id=((string)Request.QueryString("id")).Replace("'","''");  
  然后再进行拼凑  
  这样短短2句可以防范所有的sql注入攻击  
   
  //获取录入的值  
  DataGrid1.Items(i).FindControl("TextBox1").Text  
  Ctype(e.item.findcontrol("textbox1"),TextBox).text=""  
   
  //取得控件的焦点  
  private void Page_Load(object sender, System.EventArgs e)  
  {  
  Page.RegisterStartupScript("focus","<script>document.all." + TextBox1.ClientID + ".focus();</script>");  
  }  
   
  //在repeater中增加按钮  
  <asp:Button id="Button1" runat="server" Text="Button" OnCommand="Button1_OnClick" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Name")%>'></asp:Button>  
   
  //取得随机数  
  Random random1 = new Random();  
  int num1 = random1.Next(1,100);  
   
  string s=((System.Web.UI.WebControls.HyperLink)DL_Main.Items[i].FindControl("Hyperlink3")).Text;  
   
  Visible='<%# DataBinder.Eval(Container,"DataItem.StatusCode") == 'A'%>'  
   
  <%# DataBinder.Eval(Container.DataItem, "CreatedDateTime","{0:d}") %>  
   
  Response.Write("<" + "script>if(parent.document.all['url'] != null)parent.document.all['url'].value = '" + UploadPath+imageName + "';</" + "script>/n");  
   
  //正则表达式  
  "^//d+$"  //非负整数(正整数 + 0)   
  "^[0-9]*[1-9][0-9]*$"  //正整数   
  "^((-//d+)|(0+))$"  //非正整数(负整数 + 0)   
  "^-[0-9]*[1-9][0-9]*$"  //负整数   
  "^-?//d+$"    //整数   
  "^//d+(//.//d+)?$"  //非负浮点数(正浮点数 + 0)   
  "^(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数   
  "^((-//d+(//.//d+)?)|(0+(//.0+)?))$"  //非正浮点数(负浮点数 + 0)   
  "^(-(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数   
  "^(-?//d+)(//.//d+)?$"  //浮点数   
  ^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$ //上传文件格式只能是.gif或.jpg  
  ^(((19)|(20))/d{2})(((((-|/)0?)|0)[1-9])|((-|/)?1[0-2]))((((((-|/)0?)|0)[1-9])|((-|/)?[1-2][0-9]))|((-|/)?3[0-1]))$ //日期格式判断  
  ^[/u4E00-/u9FA5]*$ //任意中文  
  [^'^“^”^/^!^@^#^$^%^/^^&^*^(^)^<^>^《^》^?^。^,^?^¥^/{^/}^/][^/]]{2,} //图片标题至少2个字符,不应包含'“ ” ! @ # $ % ^ & * ( ) < > 《 》{ } [ ] ? 。,? ¥   
   
  //删除前提示确认  
  btnID.Attributes.Add("onClick","return confirm (/"确定要删除吗?/") ;");  
  btnID.Click+=new EventHandler(DataDelete);  
  ....  
  public void DataDelete(object Sender,EventArgs e)  
  {  
  .....  
  }  
   
  DataSource="<%# GetCategory() %>"  
  DataTextField="categoryname"  
  DataValueField="categoryid"  
  SelectedIndex='<%# GetCategoryID((string)DataBinder.Eval(Container.DataItem, "categoryname")) %>'   
   
  this.DropDownListProvince.Items.Add(new ListItem("请选择","a"));  
  this.DropDownListProvince.SelectedValue="a";  
   
  private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)  
  {  
  Label label=(Label)(e.Item.FindControl("lblSex"));  
  if(e.Item.Cells[0].Text=="0")  
  {  
  label.Text="女";  
  }  
  if(e.Item.Cells[0].Text=="1")  
  {  
  label.Text="男";  
  }  
  }  
   
  取得页面执行时间的代码   
   
  protected void Application_BeginRequest(Object sender, EventArgs e)  
  {  
  Application["StartTime"] = System.DateTime.Now;  
  }  
  protected void Application_EndRequest(Object sender, EventArgs e)  
  {  
  System.DateTime startTime = (System.DateTime)Application["StartTime"];  
  System.DateTime endTime = System.DateTime.Now;  
  System.TimeSpan ts = endTime - startTime;  
  Response.Write("页面执行时间:"+ ts.Milliseconds +" 毫秒");  
  }  
   
  如何计算字符的长度和截取字符(小节)   
  在此之前,有很多问题问如何判断输入的字符的长度,一般情况很多的人都说一个一个的字取判断,还有全角判断,两种方法:  
  一:  
  Public Function GetStringLengthB(ByVal checkString As String) As Integer  
   
  Dim firstB As String   
  Dim asc As Integer   
  Dim i As Integer   
  Dim count As Integer   
  Dim stringLength As Integer   
  Dim strKana As String  
   
  strKana = "呆若木鸡基本原理sadfsdaf"  
   
  If  Microsoft.VisualBasic.Trim(checkString) = "" Then  
  Return 0  
  End If  
   
  stringLength = checkString.Length  
  count = 0  
   
  For i = 1 To stringLength  
  firstB =  Microsoft.VisualBasic.Mid(checkString, i, 1)  
  asc =  Microsoft.VisualBasic.AscW(firstB)  
   
  If asc < 0 or asc > 255 Then  
   
  If strKana.IndexOf(firstB) = -1 Then  
  count = count + 2  
  Else  
  count = count + 1  
  End If  
  Else  
  count = count + 1  
  End If  
  Next  
   
  Return count  
  End Function  
   
  二:  
  Private Function GetLength(ByVal str As String) As Integer  
  Dim encodingData() As Byte  
   
  encodingData = System.Text.Encoding.Default.GetBytes(str)  
  Return encodingData.Length  
  End Function  
   
  对于字符的截取那就可以采用第二种方法,是以位截取,不是以个数截取。  
  Private Function GetLength(ByVal str As String,Byval length as string) As string  
  Dim encodingData() As Byte  
   
  encodingData = System.Text.Encoding.Default.GetBytes(str)  
  If length < encodingData.Length Then  
  Return System.Text.Encoding.Default.GetString(encodingData, 0, length )  
  Else  
  Return str   
  End If  
   
  End Function  
   
  //把字体竖着显示  
  例:  
  .aspx  
  <style type="text/css">  
  .mylable {  
  writing-mode: tb-rl;  
  text-align: left;  
  font-family: "Courier New", Courier, monospace;  
  font-size: 9pt;  
  }  
  </style>  
  <form runat="server">  
  <asp:Label id="Label2" runat="server" CssClass="mylable">Label</asp:Label>  
  </form>  
   
  //url传递中文的解决方案总结  
  1.设置web.config文件。(我不喜欢设置成这样)   
  <system.web>   
  ......   
  <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />   
  ......   
  </system.web>   
   
  或者:  
  aspx文件中:  
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
   
  2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。   
  >> 进行传递   
  string Name = "中文参数";   
  Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));   
   
  >> 进行接收   
  string Name = Request.QueryString["Name"];   
  Response.Write(Server.UrlDecode(Name));   
  或者:  
   
  NavigateURL='<%# "WebForm2.aspx?Singer=" + HttpUtility.UrlEncode("中国人", System.Text.Encoding.GetEncoding("GB2312")) %>'  
   
  3.如果是从 .HTML 文件向 .Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。   
  >> 进行传递   
  <script language="JavaScript">   
  function GoUrl()   
  {   
  var Name = "中文参数";   
  location.href = "B.aspx?Name="+escape(Name);   
  }   
  </script>   
  <body onclick="GoUrl()">   
  >> 进行接收   
  string Name = Request.QueryString["Name"];   
  Response.Write(Server.UrlDecode(Name));   
   
  一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。   
   
  ————————————————————  
  在html中实现编解码:  
   
  <script language="javascript">  
  function openUrl(src)  
  {  
  var strUrl=escape(src);  
  window.open(strUrl);  
  }  
   
   
  function change_url(src)  
  {  
  document.location.href=escape(src);  
  }  
   
  </script>   
   
  在新窗口保存  
  <a href='"css/合同.doc");' >交合同</a>  
   
   
  当前位置保存,无闪烁。  
  <a href="#" onclick="css/合同.doc")>合同</a>  
   
  注意:路径中的斜线是:“/”,而不是“/”,否则也不行啊。  
   
   
   
   
  ----------------------------------------  
  前一阵遇到在做.net Web开发时,碰到一个很奇怪的问题(我是.net新手,所以问题比较多),就是Url中,如果将中文字符作为参数值传递时,QueryString得到的值可能会出错。简单的说,比如下面这个Url:  
  UrlParmTest.aspx?parm1=中国&parm2=中国人  
  在Request.QueryString时,parm1和parm2得到都是"中国",显然出现了问题,可是在某些情况下却是正常的。  
   
  如果请求不是直接通过URL,而使用Response.Redirect在服务器端操作,没有遇到过类似的问题。  
   
  当时我想中文是双字节编码,可能传递的时候就是有不确定性,还是用英文好。  
   
  可是为什么在Server端Redirect就是正常的,问题在哪里呢?  
   
  昨天我询问在GTEC的同学,才大概明白了一些:  
  如果在.cs文件中设置中文参数,请在中文参数外使用Server.UrlEncode("中文")对中文进行Encode  
  如果在.aspx文件中设置,请使用<%=Server.UrlEncode("中文")%>进行Encode  
  在QueryString时,不用再进行Decode,可以获得正常的中文字符串  
   
  下面是同学给出的一些解释:  
  UrlEncode把一些多字节字符转换成url里允许的单字节字符,本来浏览器就会自动做的,但是目前确实存在一些问题,所以自己再Encode一下,在接受端会自动对Url进行Decode。  
   
  我想Response.Redirect可能可以确保作Encode的工作,所以没有问题。  
   
  //窗口全屏  
  1. window.showModalDialog  
  var strFeatures = "dialogWidth=1024;dialogHeight=760;center=yes;help=no;status=no";  
        var objTBWorker_Id = document.all.TBWorker_Id;    
        var sPath = "TestEQ1.asp?param=test&worker_id="+objTBWorker_Id.value+"&paper=p001";    
            
        var sTemp = "";  
        var objButton2  = document.all.Button2;  
        objButton2.click();  
        var strReturnMessage = window.showModalDialog(sPath,sTemp,strFeatures);     
 
原创粉丝点击