摘抄一个伙计的
 
summer
目录
一、       关于DataGrid的分页............................................................................ 4
二、       关于上传文件....................................................................................... 4
三、       关于自动刷新....................................................................................... 4
四、       连到SQL数据库.................................................................................. 5
五、       查询IP地址......................................................................................... 5
 六、       在HTML中加载处理页面..................................................................... 5
七、       使用TreeView控件............................................................................... 6
八、       取消IE内容安全验证........................................................................... 7
 九、       第三方的Dtable控件使用方法.............................................................. 7
 十、       关于JavaScript..................................................................................... 7
十一、    Asp.net 中 页面无刷新的做法............................................................ 12
 十二、    关于Asp的性能优化.......................................................................... 12
十三、    关于传值(隐藏代码方式)................................................................ 13
十四、    Application的事件............................................................................... 14
 
十五、    Session的事件.................................................................................... 14
 十六、    在本窗口打开页面.............................................................................. 14
 十七、    关于DropDownList的数据绑定........................................................... 14
 十八、    Table的使用....................................................................................... 15
十九、    DropDownList设置Item被选的方法................................................... 15
二十、    在HTML中去掉多的边框(整体)..................................................... 15
 二十一、    用Java下载.................................................................................... 15
二十二、    滚动字的做法:.............................................................................. 15
二十三、    层................................................................................................... 15
二十四、    关于XML....................................................................................... 16
二十五、    处理传入的参数.............................................................................. 16
二十六、    关于__dopostback()......................................................................... 16
二十七、    Toolbar............................................................................................ 17
二十八、    模式对话框..................................................................................... 18
二十九、    防止被别人框架.............................................................................. 21
 
三十、    在重定向中打开新的Window.............................................................. 22
 
三十一、    IE的控制........................................................................................ 22
 
三十二、    .NET Data Provider(.NET数据驱动)............................................. 23
 
三十三、    关于Sql中的单引号(')..................................................................... 23
三十四、    用DataReader读取数据的过程......................................................... 23
 
三十五、    参数传递的三种方式....................................................................... 23
三十六、    DataSet使用方法............................................................................. 24
 三十七、    在线人员........................................................................................ 25
 三十八、    关于Cache...................................................................................... 27
 三十九、    关于呼出表单................................................................................. 27
四十、    关于Web.config文件.......................................................................... 33
 
四十一、    如何使用T-SQL来给系统增加计划任务.......................................... 34
 四十二、    在网页上右键弹出菜单的子菜单范例.............................................. 34
四十三、    contentEditable="true" 的妙用 - 打印............................................... 36
 
四十四、    防止重复提交................................................................................. 36
 
四十五、    WebServices服务调用详细.............................................................. 38
四十六、    如何实现文本框焦点自动跳转及通过回车键提交表单...................... 38
 
四十七、    显示和隐藏主菜单.......................................................................... 40
 四十八、    使用iFrame..................................................................................... 40
 四十九、    DataGrid中的bool值转换成"是"与"否"............................................. 41
五十、    C#中Random.Next()的错误............................................................... 41
一、      关于DataGrid的分页
除了设置:
AllowPaging是指允许分页,这个是最主要的。有了它,我们才能分页。
PageSize是指定每页显示的记录数,如果不写,就会默认为10条。
外,还要加入:
       OnPageIndexChanged="DataGrid1_PageIndexChanged"
       public void DataGrid1_PageIndexChanged(object sender, DataGridPageChangedEventArgs e)
              {
                     DataGrid1.CurrentPageIndex =e.NewPageIndex;
                     DataGrid1.DataBind();
              }
 
二、      关于上传文件
上传文件应加入:
       <form id="Form1" enctype="multipart/form-data" method="post" runat="server">
源文件里边加入:
       if(File1.PostedFile !=null)
                     {
                            File1.PostedFile.SaveAs (Server.MapPath ("\\1.jpg"));
                            Image1.ImageUrl =Server.MapPath ("\\1.jpg");
                           
                     }

三、      关于自动刷新
HTML应加入:
       <meta http-equiv ="REFRESH" content ="10;URL=chat.aspx">

自动窗口ScrollWindow():
       <script language =javascript 1.1>
              function scrollWindow()
              {
                     this.scroll(0,65000);
                     setTimeout('scrollWindow()',200);
              }
              scrollWindow();
       </script>
 
四、      连到SQL数据库
                     string _sql;
                     SqlConnection cn;
                     _sql="server=localhost;uid=sa;pwd=hz0222;database=Northwind";
                     cn=new SqlConnection (_sql);
                     cn.Open ();
                     //SqlCommand cmd =new SqlCommand ("select * from Products ",cn);
                     //SqlDataReader rs;
                     //rs=cmd.ExecuteReader();
                     SqlDataAdapter da=new SqlDataAdapter ("select * from Products",cn);
 
                     DataSet ds=new DataSet ();
                     da.Fill (ds,"Products");
 
                     DataGrid1.DataSource =ds.Tables["Products"].DefaultView ;
                     //DataGrid1.CurrentPageIndex = 0;
                     DataGrid1.DataBind ();
                     cn.Close ();

五、      查询IP地址
              private void Button6_Click(object sender, System.EventArgs e)
              {
                     IPHostEntry hostInfo = Dns.GetHostByName(txtDomain.Text);
                     Response.Write ("<br>" +hostInfo.AddressList[0].ToString());
              }
       当然记得用引名字空间 System.Net
六、      在HTML中加载处理页面
       <form method="post" action="index2.aspx">

七、      使用TreeView控件
a)    下载并安装IEWebControls:http://www.asp.net/IEWebControls/Download.aspx
b)    安装完以后,默认状态下会建立一个目录:\Program files\IEWeb Controls\,当然你也可改变安装目录。找到这个目录,双击build.bat文件执行,它会建立一个名为build的子目录,并且编译在src目 录下的源文件,把编译结果和Runtime目录复制到build子目录中(自动)。在这个动作之后,在build目录下应该会有一个叫 "Microsoft.Web.UI.WebControls.dll"文件和一个Runtime子目录。为了能在ASP.NET的Web应用程序中使用 这个控件,你必须把\build\Runtime子目录下的内容复制到Web应用程序的 /webctrl_client/1_0子目录中,并且把"Microsoft.Web.UI.WebControls.dll"这个文件复制到Web应 用程序的/bin目录下。这个过程在Readme.txt文件有详细的说明,不过是英文的。
c)    然后,你就可以在Toolbox中添加一个工具了(这个不用说明了吧)
d)    以下是WebControls的说明书(E文)
      
To run the IE Web Controls:
 
1. Copy the contents of the Runtime directory to the webctrl_client\1_0
    directory under your top-level site directory. For example, if your
    site root is c:\Inetpub\wwwroot, type this at the command prompt:

    xcopy /s /i .\build\Runtime c:\Inetpub\wwwroot\webctrl_client\1_0 /y

 
    This will create the following directory structure under the site:

 
      /webctrl_client/1_0
        MultiPage.htc
        TabStrip.htc
        toolbar.htc
        treeview.htc
        webservice.htc
        webserviced.htc
        [images]
        [treeimages]

2. Create a new web application in IIS and copy the contents of the
    samples directory to this application directory. For example:
 
    xcopy /s /i .\samples c:\Inetpub\wwwroot\sampleapp /y
 
3. Create a /bin subdirectory for the application and copy the file
    Microsoft.Web.UI.WebControls.dll to this directory.
 
    The contents of the application will be as follows:

      /sampleapp
        multipage.aspx
        state_city.xml
        tabstrip.aspx
        toolbar.aspx
        treeview.aspx
        treeview_bound.aspx
        /bin
          Microsoft.Web.UI.WebControls.dll
 
4. Request the sample pages from your Internet Explorer web browser, for
 
八、      取消IE内容安全验证
a)    validateRequest="false"
 
九、      第三方的Dtable控件使用方法
a)    一定要把HTML中的<form……去掉
b)    所连接的表的第一个字段必需是自动编号的int类型,Sql的验证最好加上ASP.NET这个帐号
c)    其它问题请参考论坛http://dtable.2smm.com
 
十、      关于JavaScript
-1、 使用热键
       <body onkeydown="if(event.keyCode==13)query_data()">
0、  调用JS弹出对话框
 
       Page.Response.Write("<script language=javascript>alert('密码错误!');window.history.back(-1);</script>");
       Page.Response.End();
 
1、  调用JS程序要把"()"加上,例如:checkinput()
2、  在HTML中调用JS的代码片如下:
              <script language="javascript">
                     function closeWnd()
                     {
                            window.close();
                     }
              </script>
              <input type="button" value='关闭' onclick='closeWnd()'>
3、  关于Document对象的使用:如果你的窗体(名称是Form1)中有一个控件(名称是Keyword)那么,引用方法为:                        Document.form1.Keyword.value
4、  相关示例见test_js.sln项目
5、  使用状态条:
              <a href="tpage.htm" onMouseOver="window.status='Just another stupid link...'; return true">
              input type="button" name="look" value="?" onclick="statbar('这是状态条喔
               (statusbar) !');">
              <input type="button" name="erase" value="d)" onclick="statbar('');">

6、使用日期的例子:
       <script language="LiveScript">
       <!-- Hiding
        today = new Date()
        document.write("?( ??/ ",today.getHours(),":",today.getMinutes())
        document.write("<br>?) ?­ : ", today.getMonth()+1,"/",today.getDate(),"/",today.getYear());
       // end hiding contents -->
       </script>

7、产生随机数
       <script language="LiveScript">
       function RandomNumber() {
        today = new Date();
        num = Math.abs(Math.sin(today.getTime()));
        return num;
       }
       </script>
 
8、打开一个新窗口:
<SCRIPT LANGUAGE="javascript">
  <!--
         window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行
  -->
</SCRIPT>
  
  参数解释:
  
<SCRIPT LANGUAGE="javascript"> js脚本开始;
  window.open 弹出新窗口的命令;
  'page.html' 弹出窗口的文件名;
  'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
  height=100 窗口高度;
  width=400 窗口宽度;
  top=0 窗口距离屏幕上方的象素值;
  left=0 窗口距离屏幕左侧的象素值;
  toolbar=no 是否显示工具栏,yes为显示;
  menubar,scrollbars 表示菜单栏和滚动栏。
  resizable=no 是否允许改变窗口大小,yes为允许;
  location=no 是否显示地址栏,yes为允许;
  status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
</SCRIPT> js脚本结束
 
9、自动关闭窗口
       <script language="JavaScript">
                function closeit()
                {
                       setTimeout("self.close()",10000) //毫秒
                }
         </script>
10、打开窗口之Cookies
       回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定 没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?:-(
  有解决的办法吗?Yes! Follow me.我们使用cookie来控制一下就可以了。
  首先,将如下代码加入主页面HTML的<HEAD>区:

 
  <script>
  function openwin(){
  window.open("page.html","","width=200,height=200")
  }
  function get_cookie(Name)
    {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0)
       {
                offset = document.cookie.indexOf(search)
                if (offset != -1)
              {
                       offset += search.length
                       end = document.cookie.indexOf(";", offset);
                       if (end == -1)
                       end = document.cookie.length;
                       returnvalue=unescape(document.cookie.substring(offset, end))
                }
         }
  return returnvalue;
  }  
  function loadpopup()
    {
         if (get_cookie('popped')=='')
       {
                openwin()
                document.cookie="popped=yes"
         }
  }
  </script>
 
  然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句 即可。你可以试着刷新一下这个页面或重新进 入该页面,窗口再也不会弹出了。真正的Pop-Only-Once!
 
  写到这里弹出窗口的制作和应用技巧基本上算是完成了!
 
11、前进后退和定位
<html>
<body>
<FORM NAME="buttonbar">
     <INPUT TYPE="button" VALUE="Back" onClick="history.back()">
     <INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.html'">
     <INPUT TYPE="button" VALUE="Next" onCLick="history.forward()">
</FORM>
</body>
</html>
12、Cookies全部搞定
<script language="JavaScript">
<!--
var bVisitedToday = false;
 
var lastVisit = GetCookie("lastVisit");
if (lastVisit != null)
{
 lastVisit = 1 * lastVisit;
 var lastHere = new Date(lastVisit);
 var rightNow = new Date();
 
 if(lastHere.getYear() == rightNow.getYear()
     && lastHere.getMonth() == rightNow.getMonth()
     && lastHere.getDate() == rightNow.getDate())
 {
     bVisitedToday = true;
 }
}
 
if(bVisitedToday == false)
{
 setLastlastVisitCookie();
 window.location="http://www.thehungersite.com/"
}
else
{
 //window.location="about:blank"
}
function getCookieVal (offset)
{
 var endstr = document.cookie.indexOf (";", offset);
 if (endstr == -1)
    endstr = document.cookie.length;
 return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name)
{
 var arg = name + "=";
 var alen = arg.length;
 var clen = document.cookie.length;
 var i = 0;
 while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
 }
 return null;
}
function SetCookie (name, value)
{
 var argv = SetCookie.arguments;
 var argc = SetCookie.arguments.length;
 var expires = (argc > 2) ? argv[2] : null;
 var path = (argc > 3) ? argv[3] : null;
 var domain = (argc > 4) ? argv[4] : null;
 var secure = (argc > 5) ? argv[5] : false;
 document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}
function setLastlastVisitCookie ()
{
 var rightNow = new Date();
 var expdate = new Date();
 expdate.setTime (expdate.getTime() + 1 * (24 * 60 * 60 * 1000)); //+1 day
 SetCookie ("lastVisit", rightNow.getTime(), expdate, "/");
}
function ResetCookie()
{
 SetCookie("lastVisit", 0, null, "/");
}
// -->
</script>
十一、         Asp.net 中 页面无刷新的做法
asp中为了实现无刷新,常常会将数据提交到隐藏框架中,在asp.net中
有一个很简单的设置就可以实现
       void Page_Load(Object sender, EventArgs e)
       {
          this.SmartNavigation = true;
       }
或者直接写在
<%@ Page language="c#" Codebehind="AllBook.aspx.cs" SmartNavigation = true AutoEventWireup="false" Inherits="wx.AllBook" %>
呵呵
十二、         关于Asp的性能优化
前一段时间,因为工作需要,对一旧系统进行了性能优化。
环境描述如下:
1.该系统为以信息为主要内容。采用asp实现表现层,数据库采用MS SqlServer 2000 .
2.asp代码混乱,并伴有许多错误,由于错误被屏蔽了,所以,系统才勉强可以使用。
3.所有的数据访问直接通过在asp程序中编写混合代码实现,并在同一文件中重复访问同一张表。
 
针对以上情况,经过分析,确定一下原则,
1。将数据库的处理和访问逻辑全部写到存储过程中。
2。asp只做显示输出的部分。
3。将原有的bug修正。
4。建立索引,并更改数据访问的sql,注意要点有
1)Where 的条件需要将索引字段的条件置前。
2)不允许出现count(*) ,以count(field1)取代。
3)不允许出现 select * 以select field1,field2 ...等代替
4)尽量不用IN ,采用exits替代
5) 对于单条的Insert Update和delete ,不采用事务,采用事务锁定表,影响并发的效率,某些特殊情况还需要进行
强制不锁表
with(nolock)
 
十三、         关于传值(隐藏代码方式)
1、在第一个页的HTML中,确认Inherits属性添加到@Page指令:
<%@ Page language="c#" Inherits="test_js.page1" %>
2、在第一个页中建立一个Public的属性
              public string getName
              {
                     get
                     {
                            return txtNumber.Text ;
                     }
              }
3、添加传送指令如下:
       Server.Transfer ("edit.aspx");
4、第二个页面HTML设置如下:
       <%@ Reference Page="page1.aspx" %>
5、声明第一个的变量
       public page1 fp1;
6、引用方法
       if (!this.IsPostBack )
       {
              fp1=(page1)Context.Handler ;
              txtRc.Text =fp1.getName;
       }
       //this.IsPostBack方法用于测试页面是否是回传
7、完成!
 
十四、         Application的事件
<script language="C#" runat="server">
 
    void Application_OnBeginRequest(Object sender, EventArgs E)
    {
       
    }
 
    void Application_OnEndRequest(Object sender, EventArgs E)
    {
       
    }

</script>
 
十五、         Session的事件
void Session_OnStart()
{    
       Session["username"]="";//初始化参数
}

 
void Session_OnEnd()
{
}
 
十六、         在本窗口打开页面
       onclick ="window.open('?addnew=true','_self','')"
 
十七、         关于DropDownList的数据绑定
                     drp_Tech.DataSource =ds.Tables["职员表"].DefaultView ;
                     drp_Tech.DataTextField ="技术员";
                     drp_Tech.DataBind ();

十八、         Table的使用
       1、可以用width=100%来使Table填充窗体的宽度
       2、可以用<td colspan="3" align="center">&nbsp;</td>来合并列,合并行用rowspan,Span的意思是跨度
 
十九、         DropDownList设置Item被选的方法
       DropDownList2.Items.FindByText ("2").Selected =true;
 
二十、         在HTML中去掉多的边框(整体)
       leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"
 
二十一、            用Java下载
              <script language="javascript">
              var strDownloadUrl = "http://g.china.msn.com/7MEZH_CN/ZH-CHS/SETUPDL.EXE";
              function LaunchDownload(){location.href=strDownloadUrl;}
              </script>

二十二、            滚动字的做法:
       <marquee scrolldelay="180">欢迎登录海天客户关系管理系统!</marquee>

二十三、            层
       在Login.aspx中可以使用层来解决位置的问题
       <div id="Layer1"style="BORDER-RIGHT: #000000 0px; BORDER-TOP: #000000 0px; LEFT: 28%; OVERFLOW: hidden; BORDER-LEFT: #000000 0px; WIDTH: 432px; BORDER-BOTTOM: #000000 0px; POSITION: absolute; TOP: 24%; HEIGHT: 282px; visibility: visible;"></div>
 
二十四、            关于XML
                     DataSet dsXml =new DataSet ("Settings");
                     string filepath=Server.MapPath ("\\xml\\set.xml");
                     dsXml.ReadXml(filepath);
                     DataGrid1.DataSource =dsXml;
                     Response.Write ("<br><br><br>第一个连接为:" + dsXml.Tables ["Set"].Rows[0]["ConnectionString1"].ToString ());
                     DataGrid1.DataMember ="Set";
                     DataGrid1.DataBind ();
 
 
 
 

[转载]登陆界面程序,(C#+SQL)

------------------------------------------------------html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SignIn.aspx.cs" Inherits="SignIn" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>交流用户 登入页面</title>
    <link href="usermanage/communion.css" type="text/css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <center>
     <table class="loginTable " cellspacing="0" cellpadding="2" width="600" border="0">
    <tr>
     <td ><div class="loginTopBar"> </div>
      <div class="loginHeader">欢迎进入交流平台</div><br/>
      <center>
      <table class="loginTable1" cellspacing="1" cellpadding="0" width="402" border="0">
       <tr>
        <td width="20%">&nbsp;</td>
        <td colspan="2"><asp:label id="lblErrorMessage" runat="server" visible="False" cssclass="errText" ForeColor="Red"> 登录失败,请再一个输入你的用户名和密码.</asp:label></td>
       </tr>
       <tr>
        <td>
         <div align="center">用户名:</div>
        </td>
        <td width="35%"><asp:textbox id="txtUsername" runat="server" Columns="15" Width="128px"></asp:textbox></td>
        <td width="45%"><font face="宋体">忘记用户名</font><asp:requiredfieldvalidator id="Requiredfieldvalidator1" runat="server" controltovalidate="txtUsername" display="Static"
          font-name="verdana" font-size="9pt" errormessage="请输入用户名."></asp:requiredfieldvalidator></td>
       </tr>
       <tr>
        <td>
         <div align="center">密 &nbsp;码:</div>
        </td>
        <td><asp:textbox id="txtPassword" runat="server" Columns="15" Width="128px" TextMode="Password"></asp:textbox></td>
        <td><font face="宋体">忘记密码</font><asp:requiredfieldvalidator id="Requiredfieldvalidator2" runat="server" controltovalidate="txtPassword" display="Static"
          font-name="verdana" font-size="9pt" errormessage="请输入密码."></asp:requiredfieldvalidator></td>
       </tr>
       <tr>
        <td>&nbsp;</td>
        <td>
                                    <asp:ImageButton ID="imbtnlogin" runat="server" ImageUrl="~/newnet/image/dlsearch.gif" OnClick="imbtnlogin_Click" /></td>
        <td>
                                    <asp:Label ID="labzhuc" runat="server" Text='<a href="CreateNewAccount.aspx"><font color="#FF6600"> 注册新会员</font></a>' Width="65px" Height="14px"></asp:Label></td>
       </tr>
      </table>
      
     
      </center>
      </td>
     
    </tr>
    </table>
    </center>       
    </div>
    </form>
</body>
</html>
 
----------------------------------------------cs
protected void imbtnlogin_Click(object sender, ImageClickEventArgs e)
    {
        UserLogin userlogin = new UserLogin();
        string customerID = userlogin.Login(txtUsername.Text, txtPassword.Text);
        if (txtUsername.Text == customerID)
        {
            Get_user_blogset myuser_blogset = myinfo.get_user_blogset(1);
            int dengl_jiaoz = myuser_blogset.DengL_JiaoZ;
            userlogin.update_user_jiaoz(customerID, dengl_jiaoz);
            Response.Cookies["username"].Value = customerID;
            UserLogin.CustomerDetails customerDetails = userlogin.GetDetails(customerID);
            Response.Cookies["xingm"].Value = customerDetails.firstname;
            Response.Cookies["type"].Value = customerDetails.type;
            Response.Cookies["haom"].Value = "";
            Response.Cookies["zhuce_type"].Value = customerDetails.zhuce_type.ToString();
            Response.Redirect("/web/newnet/userma/ad_info.aspx?id=1");
        }
        else
        {
            lblErrorMessage.Visible = true;
            lblErrorMessage.Text = customerID;
            return;
        }
    }

Posted on 2006-12-12 16:33  李通通  阅读(591)  评论(0编辑  收藏  举报