zoukankan      html  css  js  c++  java
  • ASP.Net中的一些基础家常事

       在使用SqlParameter[]时,当参数为个数为0个时,在方法间传递 SqlParameter[]参数时,须用new IDataParameter[]{}; 

                        如:方法   public    DataTable   GetAllDataTable(string sql,SqlParameter[] param){……}  当参数param个数为0个

                                    调用:  GetAllDataTable(sql,new IDataParameter[]{});

     

          关于多iframe下的用户退出跳转: 

              当用户点击退出时,如果不设置正确跳转方式,跳转页面就会在某个Iframe中显示,而退出跳转要覆盖整个页:

                     解决办法:1. ScriptManager.RegisterStartupScript(this, this.GetType(), "", "parent.location.href='../Login.aspx'", true); [后台]

                                 2.   ScriptManager.RegisterStartupScript(this, this.GetType(), "", "top.location.href='../Login.aspx'", true); 【这个有时候不行】

          关于页面中避免不需要的服务器控件触发验证控件,可将服务器提交控件的 CausesValidation=“false”

          *********************** 关于Asp.net获取或设置用户自定义控件中的控件值的几种做法 

                   法1.     用户自定义控件名.FindControl("里面的控件名如:Ddllist") as  DropDownList ;  取值如下

                          String   str = (UC1.FindControl("Ddllist")  as   DropDownList).SelectedValue;   // 这种做法不是很好,用2的方法更好

                   法 2.  可以将用户自定义控件中的控件值,在用户自定义控件中,封装成一个属性 ,在页面调用该控件时,直接获取该属性的值即可; 如:

                           在用户自定义控件中:

                                   public   string ddlistName

                                    {

                                          get{  return    Ddlist.SelectedValue ;}             // Ddlist表示用户自定义控件中的  控件名

                                   }

                            在页面中调用

                                     string    str = UC1.ddlistName;    //  便可得到控件Ddlist.SelectedValue的值

                                

              ******关于验证控件的最佳做法:如果客户端JS被禁用,将无法验证,那么我们需要在提交按钮的单击事件里写上一个前提

                               public   void   btn_Click( object sender, EventArgs e)

                                 {

                                         if ( Page.IsValid )                   // 表示客户端SJ未禁用,且通过了验证 

                                             { …… }

                                  }        

        关于<input  type="UserName"  id="txtUserName"  runat="Server" /> 这种Html服务端控件的取值

              string   str=txtUserName.Value.Trim() ;不是textUserName.Text;

        *****   HTML按钮返回上一个页面代码

                         <input type="button" value="返回"  onclick="history.go(-1)" /> 

         1. ASP.Net中如何在后台加入脚本代码 ?                                                                           

                   答:  因为后台代码为C#语言编写,无语直接读取脚本,可用Page对像的一个方法来添加,具体如下

                            string    str="<script language=javascript>window.alert(' 你已经重毒了!')</script>";

                          Page.ClientScript.RegisterStartupScript( this.GetType(), "" , str );

             **********   如果要传递一个JS方法则要做如下处理: 

                          Page.ClientScript.RegisterStartupScript( GetType() , "" , " function() ;" , true);

         

           2.服务器端控件表现客户端行为        *****非常重要  

                由于服务器端控件事件极少,通常须要表现一此客户端的事件行为,才能满足开发须要:

                   如:TextBox控件的客户端"onblur"(失去焦点),“onfocus”(获得焦点)事件

                     代码如下

                           Protected   void    Page_Load( object  sender , EventArgs  e )

                              {

                                    if (!Page.IsPostBack)

                                         {

                                               //特别注意 右边的不用写“<script ></script>” 了

                                               this.TextBox.Attributes.Add( "onblur" ,"window.alert( ‘我失去焦点了’ ) " ) ;

                                               this.TextBOX.Attributes.Add( "onfocus" , "window.alert(' 我得到焦点了') ");

                                         }

                              }

            3.跨页面的四种传值方式;                                                                                                           页面传值

                   第一种.  ASP.net中的Post传值   

                       。传值页面  前台代码中                                   

                               a.页面安全问题先在 <%  Page  加 ValidataRequest = “false”  %>     //有时可以不加

                               b. 在页面Form标签中指定Post传值方式<% Form  加   method="post"  %>

                               c.指定传递按钮的PostBackUrl     (可在属性中设置) ;

                       。接收页面的 Page事件中

                                Label1.Text=Request.Form["txtID"].ToString();

     

                     第二种 Asp.Net中的Get传值 条件                                                                                          页面传值

                         。传值页面

                                 b.在Form 标签中指定为Get传值方式  <% Form  加  method="get" %>

                         。接收页面   Page_Load事件中

                                 label1.Text=Request.QueryString["txtID"].ToString();

                      第三种  Asp.Net利用FindControle()方法实现页面间的传值

                          。 在接收页面中的 Page_Load 事件中

                                    if( !Page.IspostBack)

                                         {

                                                TextBox tb=(TextBox)Page.PreviousPage.FindControl("txtID");

                                                label1.Text=tb.Text; 

                                          }

                      第四种:非常常用使用Request.Redirect()传值 ,代码如下

                            。传值页面: Response.Redirect( "B.aspx?txtID="+txtID.Text );

                            。接收页面:  Label1.Text=Request.QueryString["txtID"].ToString();

           4.   实现3秒后刷新到另一页面  和利用JS 实现提示刷新跳转。

                  。  Response.AddHeader( "refresh" , " 3 ; url=A.aspx") ;       //指3秒后刷新到A.aspx页       

                  。当实现先提示再重定向到时某页面  时,特别注意(容易得到意想不到的效果)正确方法如下:

                      string   str="<script language=javascript>  window.alert('提示信息') ; window.location.href='A.aspx' </script>"   ;    // JS提示转向新面*******

     

                      Response.Write( str );

     

                 如果 后面有变量就要改成如下:   (假如在后面的路径中有个变量  strurl)

                       string   str="<script language=javascript> window.alert('提示信息') ; window.location.href=\"A.aspx?id="+strurl+"\"</script>" ;

     

          5.  Server对像的两个连接,Server.Execute("A.aspx")  和Server.Transfer("N.aspx");

                a.对于Server.Execute("A.aspx")是先从当前页面跳到A.aspx,然后再回到当前页

               b.对于Server.Transfer( " B.aspx")是从当前页跳到B.aspx,一去不反

          6.   Server 对象的一些重要特性       

                  a.      Server.Html    对HTML 标记进行编 码 或解码

                                  如  Response.Write("<H1> 这是一个标记<H1>") ;但输出的确是大号的   "这是一个标记"并没有对<H1>进行输出

                                     可以作如下处理

                                                  Response.Write( Server.HtmlEncode(”("<H1> 这是一个标记<H1>“)) ;

                                     输出结果 就为 "<H1>一个标记<H1>"    了

                  b.      Server.MapPath("路径")   表示服务器的某位置

                             如:   Server.MapPatp("../image/123.JPG" ) ;  和Request.MapPath(" ../image/123.JPG")  一样

                  c.      Server.UrlEncode()     目地把 字符串转化为可在URL传输的字符串

                                   当我们传的递如:

                                               ReSponse.Redirect("../Default.aspx?key1=a&b&key2=123")时就会报错:原因是因为黄色部分不能自动解码

                                               所以要将黄色 这    一部分(不是全部) 解码

                                    解决办法

                                               ReSponse.Redirect("../Default.aspx?key2=123&"+Server.UrlEncode ( "key1=a&b" ));

     

  • 相关阅读:
    Programming tutorials and source code examples
    Easy Web Development Framework for Java
    jquery两级边动完整例子
    EWeb4JSolidBase 1.9发布,基于EWeb4J的功能平台 开源软件 ITeye资讯
    Accelerated C++中文版/克尼格 (Andrew Koenig)图书卓越亚马逊
    5.7 C 有 ``按引用传递" 吗?
    How to Install IIS on Windows 7 or Vista HowTo Geek
    The GNU C Library
    c语言程序设计现代方法
    C Array length function problem C / C++
  • 原文地址:https://www.cnblogs.com/yingger/p/2439865.html
Copyright © 2011-2022 走看看