ASP.NET 技巧2

制作移动的文字
<marquee scrollamount=1 direction=right  width=200
onMouseOver="this.start()" onMouseOut="this.stop()" >
文字文字文字文字文字文字文字文字</marquee>
通过js精确控制

ContractedBlock.gif ExpandedBlockStart.gif Code
<TABLE border=1 width=200>
<TR>
 
<TD>
<div id="marquees">
<div class="details">
<a href='http://www.sina.com.cn' target='_blank' class="black12 blackDot"><li>新浪</li></a>
<a href='http://www.baidu.com' target='_blank' class="black12 blackDot"><li>百度</li></a>
<a href='http://www.google.com' target='_blank' class="black12 blackDot"><li>google</li></a>
<a href='http://www.yahoo.com.cn' target='_blank' class="black12 blackDot"><li>雅虎</li></a>
<a href='http://www.163.com' target='_blank' class="black12 blackDot"><li>网易</li></a>
<a href='http://www.sohu.com' target='_blank' class="black12 blackDot"><li>搜狐</li></a>
</div>
</div>
</TD>
</TR>
</TABLE>
<script language="javascript" type="text/javascript">
marqueesHeight
=100;
stopscroll
=false;
with(document.getElementById(
"marquees")){
 style.width
=10;
 style.height
=marqueesHeight;
 style.overflowX
="visible";
 style.overflowY
="hidden";
 noWrap
=true;
 onmouseover
=new Function("stopscroll=true");
 onmouseout
=new Function("stopscroll=false");
}
document.write(
'<div id="templayer" style="position:absolute;z-index:1;display:none"></div>');

preTop
=0; currentTop=0;

function init(){
document.getElementById(
"templayer").innerHTML="";
if
(document.getElementById("templayer").offsetHeight<marqueesHeight){
document.getElementById(
"templayer").innerHTML+=document.getElementById("marquees").innerHTML;
}
document.getElementById(
"marquees").innerHTML=document.getElementById("templayer").innerHTML+document.getElementById("templayer").innerHTML;
setInterval(
"scrollUp()",30);
}
document.body.onload
=init;

function scrollUp(){
if(stopscroll==truereturn;
preTop
=document.getElementById("marquees").scrollTop;
document.getElementById(
"marquees").scrollTop+=1;
if(preTop==document.getElementById("marquees").scrollTop){
document.getElementById(
"marquees").scrollTop=document.getElementById("templayer").offsetHeight-marqueesHeight;
document.getElementById(
"marquees").scrollTop+=1;
}
}
</script>

 

用了这个滚动,浏览器会假死,要把while改成if,还有就是有的浏览器下方有空白,要把display设为none。

DataTable用法

ContractedBlock.gif ExpandedBlockStart.gif Code
DataTable dt = new DataTable();

            
//定义表结构
            dt.Columns.Add("Id"typeof(System.Int32));
            dt.Columns.Add(
"Code"typeof(System.String));
            dt.Columns.Add(
"Name"typeof(System.String));

            
//添加新行
            for (int i = 0; i <= 3; i++)
            {
                DataRow dr 
= dt.NewRow();
                dr[
0= i;
                dr[
1= "s" + i;
                dr[
2= "lhking" + i;
                dt.Rows.Add(dr);
            }

 

网页鼠标跟随

ContractedBlock.gif ExpandedBlockStart.gif Code
<script type="text/javascript"> 
function mousePosition(ev){
    
//支持 火狐
    if(ev.pageX || ev.pageY){
        
return {x:ev.pageX, y:ev.pageY};
    }
    
//支持IE
    return {
        x:ev.clientX 
+ document.body.scrollLeft - document.body.clientLeft,
        y:ev.clientY 
+ document.body.scrollTop - document.body.clientTop
    };
}

function mouseMove(ev){
    ev 
= ev || window.event;
    var mousePos 
= mousePosition(ev);
        
       document.getElementById(
'div1').innerHTML ='lhking'+ mousePos.x +":"+mousePos.y ;
       document.getElementById(
'div1').style.left = mousePos.x+5;
       document.getElementById(
'div1').style.top = mousePos.y+0;
}

//事件添加
document.onmousemove = mouseMove;
</script>
<body>
    
<p id='pi'></p>
    
<div id='div1'  style="position:absolute;  
  left:50;  
  top:
10;  
  z
-index:1000;  
  padding:0px;  
  background
-color:#FFFFCC;  
  color:#
201000;  
  font
-size:12px;  
  border:1px   solid   #
284860;"></div>   
</body>


后台传递参数
 string jsstr = "javascript:window.open('LinkInputSelectProvider.htm?inputstoreitemid="+lblid + "&productid="+productid+"','newwindow2','height=500,width=800,top=300,left=100,location=no,status=no')";
            ((HtmlControl)e.Row.FindControl("lnbSelectProvider")).Attributes.Add("onclick", jsstr);

将字符串的ASCII码加10(可用于简单加密)

ContractedBlock.gif ExpandedBlockStart.gif Code
  string s = "lhking";
        
string ns=null;
        
char[] c = s.ToCharArray();
        
for (int i = 0; i < s.Length; i++)
        {
            
int sc = c[i] + 10;
            
char cc = Convert.ToChar(sc);
            ns 
+= cc.ToString();
        }
        
return ns;  //vrusxq

 

js数字正则表达式

ContractedBlock.gif ExpandedBlockStart.gif Code
function isDigit(s)      //数字正则表达式
{     
  var patrn
=/^\d*$/;     
  
if(patrn.test(s))  
  {   
     
return true;  
  }
  
else return false;
}   
<input   type="text"   name="num">   
<input   type="button"   value="test"   onclick="isDigit(document.all.num.value)">   

 

DropDownList 选择时弹出对话框,确定时执行,取消时不执行

ContractedBlock.gif ExpandedBlockStart.gif Code
<%@   Page   Language="C#"   AutoEventWireup="True"   %>   
  
<html>   
  
<head>   
  
<script>   
  function   a()   
  {   
  
if(confirm('真的吗?'))   
  {   
   document.all.Button1.click();
  
return true;  
  }   
  
else 
  {
     
return false;
  }
    
  }   
  
</script>   
  
<script   runat="server">   
  
void   Button_Click(Object   sender,   EventArgs   e)     
  {   
    Label1.Text   
=   "You   selected:   "   +     
   ViewState[
"ss"].ToString()  +   ".";                     
  }   
  
void   Page_Load(Object   sender,   EventArgs   e)     
  {   
      
this.dropdownlist1.Attributes.Add("onchange""a()");
  }
      
protected void dropdownlist1_SelectedIndexChanged(object sender, EventArgs e)
      {
          ViewState[
"ss"= this.dropdownlist1.SelectedValue;
      }
</script>   
  
</head>   
  
<body>   
  
<form id="Form1"   runat="server">   
  
<h3>DropDownList   Example</h3>   
  Select   an   item   from   the   list   and   click   the   submit   button.   
  
<p>   
  
<asp:DropDownList   id="dropdownlist1"   runat="server" OnSelectedIndexChanged="dropdownlist1_SelectedIndexChanged">   
    
<asp:ListItem>Item   1</asp:ListItem>   
    
<asp:ListItem>Item   2</asp:ListItem>   
    
<asp:ListItem>Item   3</asp:ListItem>   
    
<asp:ListItem>Item   4</asp:ListItem>   
  
</asp:DropDownList>   
  
<br><br>   
  
<asp:Button  id="Button1" Text="Submit" OnClick="Button_Click" runat="server"/>  
  
<br><br>   
  
<asp:Label   id="Label1"   runat="server"/>   
  
</form>   
  
</body>   
  
</html>   

 

隐藏GridView某一个列
 this.gvInputStoreItemsList.Columns[4].Visible = false;(在page_load里可以直接写)
e.Row.Cells[9].Enabled = false;
 查找GridView里嵌入的服务器端控件
  ((HyperLink)e.Row.Cells[6].FindControl("hlEdit")).Text = "查看";

c# 抛出异常并得到异常的信息

ContractedBlock.gif ExpandedBlockStart.gif Code
 protected void Button2_Click(object sender, EventArgs e)
    {
        
try
        {
            ThrowException();
        }
        
catch (ArgumentException err)
        {
            
this.TextBox1.Text = err.Message;
        }
        
catch (Exception ex) 
        { 
            
this.TextBox2.Text = ex.Message; 
        }
    }
    
private void ThrowException()
    {
        
throw new Exception("这是我故意抛出的异常!");
    }

遍历ASPX页面上的所有TextBox控件

ContractedBlock.gif ExpandedBlockStart.gif Code
  protected void Button2_Click(object sender, EventArgs e)
    {
        
foreach (Control control in this.Form.Controls)
        {
            FindTextBoxControl(control);
        }
    }

    
private void FindTextBoxControl(Control control)
    {
        
if (control is TextBox)
        {
            TextBox txt 
= (TextBox)control;
            txt.Text 
= "lhking";
        }
        
//else
        
//{
        
//    for (int i = 0; i < control.Controls.Count; i++)
        
//    {
        
//        FindTextBoxControl(control.Controls[i]);
        
//    }
        
//}
    }

 

向页面中动态地添加一个控件

ContractedBlock.gif ExpandedBlockStart.gif Code
 Button btn_gvFresh = new Button();
        btn_gvFresh.Click 
+= new EventHandler(btn_gvFresh_Click);
        btn_gvFresh.ID 
= "btn_gvFresh";
        btn_gvFresh.Style.Add(
"display""none");
        
this.FindControl("form1").Controls.Add(btn_gvFresh);

 

GridView 里操作CheckBox

ContractedBlock.gif ExpandedBlockStart.gif Code
   protected void lnkBtnAllCheck_Click(object sender, EventArgs e)
    {
        
for (int i = 0; i < this.gvInputStoreList.Rows.Count; i++)
        {
            CheckBox myCheckBox 
= (CheckBox)(gvInputStoreList.Rows[i].FindControl("cbxSelect"));
            myCheckBox.Checked 
= true;
        }
    }

 
TreeView判断选中的节点是否是叶子节点
this.treeModuleList.SelectedNode.ChildNodes.Count

数据排序order by Sort asc,  Edittime desc 。Sort和Edittime都不能为null,为null会出错。

改变浏览器的分辨率可以很容易的看到高像素的效果,在调试脚本的时候,不要勾选禁用脚本调试。

js确定离开本页吗?

ContractedBlock.gif ExpandedBlockStart.gif Code
<script language="javascript" type="text/javascript">

<!--
var pb_strConfirmCloseMessage;
var pb_blnCloseWindow 
= false;
pb_strConfirmCloseMessage 
="您真的要离开本页吗?";
function ConfirmClose() {
window.
event.returnValue = pb_strConfirmCloseMessage;
pb_blnCloseWindow 
= true;
}
function ShowConfirmClose(blnValue) {
if(blnValue) {
document.body.onbeforeunload 
= ConfirmClose;
else {
document.body.onbeforeunload 
= null;
}
}
//--></script>
</head>
<body onload="ShowConfirmClose(true);">

 

SQL Server导出数据,可以把数据库从一个sql服务器导入到另一个sql服务器,视图在导入的时候,是不会直接导入的,需要新建。

给label添加链接样式:
this.Label1.Attributes["style"] = "Cursor:hand";

JS的Open
 this.selectOperator.Attributes.Add("onclick", "javascript:window.open('LinkSelectOperator.htm?id=jingshouren','window2','height=800,width=900,top=100,left=400,location=no,status=no')");
中的第二个参数,是打开窗口的窗口名称,如果要引用这个窗口的话,可以用到这个名称。它可以保证要打开的窗口只有一个,如果为空的话,那个窗口会被打开多次。

今天在帮同事搞GridView分页,设置了PageSize,利用一个ascx进行分页,代码没任何问题,就是分不了页。最后问题是没有设置AllowPage=“true”。

最近在弄xml文档,xml真是严格区分大小写的啊,被大小写弄得要死。<No Id="df394fe2-4f5a-4d21-9f83-4ed0dfdadce2">找id怎么也找不到。

DataTable 排序

ContractedBlock.gif ExpandedBlockStart.gif Code
DataRow[] rows = dataTable1.Select("""ord asc");

DataTable t 
= DataTable1.Clone();

t.Clear();

foreach (DataRow row in rows)

    t.ImportRow(row);

DataTable1 
= t;

VS2005中这种方法最简单: 
DataView dv 
= dt.DefaultView; 
dv.Sort 
= "c1 Asc"
DataTable dt2 
= dv.ToTable();

----

//拿到数据源 
DataView dv = this.dtDataSource.Copy().DefaultView; 
//排序 
dv.Sort = "款 asc,項 asc,目 asc"
//过滤重复数据 
//DataTable dt = dv.ToTable(true, "款", "項", "目"); 
//不过滤重复数据 
DataTable dt = dv.Table.Copy();   

 

ContractedBlock.gif ExpandedBlockStart.gif Code
DataTable dt = dataTable.Clone();
dt.Rows.Clear();

DataRow[] rows 
= dataTable.Select(String.Empty, "ArticleID Desc");
foreach (DataRow row in rows)
{
    dt.ImportRow(row); 
//数据导入新的DataTable中
}


在数据绑定时,要在!ispostback里 ,不然,数据会和以前的一样。

母版页里使用JavaScript,在onblur事件里验证email

ContractedBlock.gif ExpandedBlockStart.gif Code
 function VEmail()
        {
            
if(!document.getElementById("<%=f_Email.ClientID%>").value.match(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/))
            {
                alert(
"Email地址错误!请重新输入");
                document.getElementById(
"<%=f_Email.ClientID%>").focus();
            }
        }

 
退出iframe的办法:
top.location.href="";在退出时要加上return false; top有点是默认的窗口的名称。
如果是在后台写的话,要加上return;
还可以用parent.location.href="yoururl.jsp"  

window.opener 实际上就是通过window.open打开的窗体的父窗体。

比如在父窗体parentForm里面 通过 window.open("subForm.html"),那么在subform.html中 window.opener

就代表parentForm,可以通过这种方式设置父窗体的值或者调用js方法。

如:1,window.opener.test(); ---调用父窗体中的test()方法

    2,如果window.opener存在,设置parentForm中stockBox的值。

    if (window.opener && !window.opener.closed) {

       window.opener.document.parentForm.stockBox.value = symbol;

}

 

 

 

window.opener是当前页面A通过open方法弹出一个窗口B,那在B页面上 window.opener就是A
window.parent是当前页面C通过location.href转到新的页面D,那在D页面上window.parent就是B
或者是页面E里套一个frame为F,那F页面的window.parent就是E
A页面通过open方法打开B页面,B页面通过location打开C页面,C页面上刷新A页面


string.format("{0:N}",i);  i 必须是整数,才能起作用。

如果网站出现问题(比如打不开或是不该错的地方,程序报错),可以多用几个浏览器来做测试(ie6 ie7 firefox)。

ASP.NET  发布网站的话,如果里面有上传文件的文件夹,但是这个文件夹是空的话,在预编译的时候,会删掉这个文件夹。还要在ftp上新建个文件夹。

select * from users where 1=1 +sqlCondition;多条件搜索。

避免div被flash挡住的方法:

ContractedBlock.gif ExpandedBlockStart.gif Code
1. 避免Flash挡住Div层的方式:增加 <param name="wmode" value="transparent">,另外增加<embed wmode="transparent" dot.gif其他选项>
2. select和flash挡住div,可以采取移除节点的方式防止挡住
3. select和flash采用display:none的方式防止挡住
4. 在select和flash上面加一层隐藏的iframe对象,因为iframe对象跟select和flash界面显示平级,然后把目标div放在iframe上面
5. 如果是按钮、提交、图片按钮,采用 button 标签来取代input标签,其他一致

 

在类型转换时,as首先进行类型判断,如果转换成功返指定类型的结果,如过类型不兼容,则返回空。而强转不进行类型判断,转换失败后会抛出异常,所以在强制转换类型是需加入异常处理。
as转换的第一步就是is判断是否能够转换,能的话就强制转换,否则就给你个null 。


gridview 的rowdatabound 事件里,得不到e.row.cell[0].text的值,不过可以得到<asp:TemplateField HeaderText="选择">里文本框的值。

今天在用window.showModalDialog的时候,页面总是显示原来的值,最后搜索下,发现用showmodaldialog打开的窗口,pageload第二次会不执行,解决办法就是在url后面加个随机数。

asp.net开放错误<customErrors mode="Off" />

asp.net中编辑——设置文档格式很有用,可以把节点对齐。

如果一些数据显示不出来,可能是高度和宽度设置的很小。

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 public static bool ValidateDate(string date)  //验证日期是否符合 2009/01/01的形式
    {
        date 
= date.Length > 10 ? date.Substring(09) : date;  //日期只能是10位数

        string 
str = @"^[0-9]{4}/[0-9]{2}/[0-9]{2}";
        Regex r 
= new Regex(str);
        
if (r.IsMatch(date))
            
return true;
        
else return false;
    }

要引用System.Text.RegularExpressions;命名空间

buju

ContractedBlock.gif ExpandedBlockStart.gif Code
<td align="left">
                            
<table align="right">
                                
<tr>
                                    
<td align="left">
                                       
<div style="width:450px;word-break:break-all">
                                        
&nbsp;&nbsp;&nbsp;&nbsp;<asp:Literal ID="ltContent" runat="server"></asp:Literal></div>
                                    
</td>
                                
</tr>
                            
</table>
                            
<asp:Image ID="Image1" runat="server" Width="500px" Height="300px" />
                        
</td>

 

DataList:

ContractedBlock.gif ExpandedBlockStart.gif Code
 <asp:DataList ID="dl" runat="server" Width="150" RepeatDirection="horizontal" OnItemDataBound="dl_ItemDataBound" >
                                                        
<ItemTemplate>
                                                            
<table>
                                                                
<tr>
                                                                    
<td style="width: 170px; background-color: White; height: 130px" align="center">
                                                                        
<table width="150px" style="height: 130px; text-align: left">
                                                                            
<tr>
                                                                                
<td align="center" colspan="2">
                                                                                    
<img src='<%#Eval("Images")%>' alt="" width="150" height="110" />
                                                                                
</td>
                                                                                
<tr>
                                                                                    
<td align="center">
                                                                                        
<asp:HyperLink ID="hlproduct" runat="server" Text='<%#Eval("Name")%>'>
                                                                                        
</asp:HyperLink>
                                                                                    
</td>
                                                                                    
<td style="height: 20px">
                                                                                    
</td>
                                                                                
</tr>
                                                                        
</table>
                                                                    
</td>
                                                                
</tr>
                                                            
</table>
                                                        
</ItemTemplate>
                                                    
</asp:DataList>


    protected void dl_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            HyperLink hl = (HyperLink)e.Item.FindControl("hlproduct");
            hl.Text = hl.Text.Length > 15 ? hl.Text.Substring(0, 15) : hl.Text;  //图片名称只显示15个字符
            string key=this.dl.DataKeys[e.Item.ItemIndex].ToString();
            hl.NavigateUrl = "~/zst/ProductShow.aspx?id="+key;
        }
    }


今天在用元素a,onclick会执行一段js,打开一个窗口,由于要用到页面上的一个元素DropDownList里的值,怎样才能在onclick时,知道页面上DropDownList已经被用户选择了,想了好久,原来就是在恰当的地方多用几次this.style.attributes.add("onclick",""); 

货币字段的话,在数据库里用float类型,感觉比money类型好。

 

模板页内查找内容页面上的控件:
CheckBox cb = (CheckBox)PreviousPage.Master.FindControl("ContentPlaceHolder1").FindControl("f_A64");
内容页查找内容页控件  CheckBox cb = (CheckBox)Master.FindControl("ContentPlaceHolder1").FindControl("f_A64");
查找当前页面控件: TextBox tb = (TextBox)this.FindControl("f_min" + j.ToString());

Sql删除表命令:
drop table tablename

 

ASP.NET上传文件

ContractedBlock.gif ExpandedBlockStart.gif Code
  string path = "";
        path 
= Server.MapPath("~/Utility");
        
string htmlfilename =path+"\\"+ DateTime.Now.ToString("yyyymmddhhmmss"+ ".xls";
        fileUpload.SaveAs(htmlfilename);

 

浏览器中绑定回车键

 <body  οnkeydοwn="BindEnter()">

 function BindEnter()
 { //使用document.getElementById获取到按钮对象
     var button = document.getElementById('btnSearch');
     if(event.keyCode == 13)
     {
         button.click();
         event.returnValue = false;
     }
 }

 

得到当前是星期几 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main( string [] args)
{
Console.WriteLine(GetCurrentWeek(DateTime.Now));
Console.Read();
}
public static int GetCurrentWeek(DateTime currentDate)
{
try
{
DateTime firstDate
= new DateTime(currentDate.Year, 1 , 1 );
int firstWeek = Convert.ToInt32(firstDate.DayOfWeek);
firstWeek
= firstWeek.Equals( 0 ) ? 7 : firstWeek;

int currentWeek = Convert.ToInt32(currentDate.DayOfWeek);
currentWeek
= currentWeek.Equals( 0 ) ? 7 : currentWeek;
int currentDays = Convert.ToInt32(currentDate.DayOfYear);

int n = (currentDays - 8 + firstWeek - currentWeek) / 7 + 2 ;

return n;
}
catch (Exception)
{
return 0 ;
}
}
}
}

 

转载于:https://www.cnblogs.com/lhking/archive/2009/05/15/1457946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值