制作移动的文字
<marquee scrollamount=1 direction=right width=200
onMouseOver="this.start()" onMouseOut="this.stop()" >
文字文字文字文字文字文字文字文字</marquee>
通过js精确控制
<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==true) return;
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用法
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);
}
网页鼠标跟随
<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(可用于简单加密)
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数字正则表达式
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 选择时弹出对话框,确定时执行,取消时不执行
<%@ 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# 抛出异常并得到异常的信息
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控件
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]);
// }
//}
}
向页面中动态地添加一个控件
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
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确定离开本页吗?
<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 排序
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();
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
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挡住的方法:
1. 避免Flash挡住Div层的方式:增加 <param name="wmode" value="transparent">,另外增加<embed wmode="transparent" 其他选项>
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中编辑——设置文档格式很有用,可以把节点对齐。
如果一些数据显示不出来,可能是高度和宽度设置的很小。
public static bool ValidateDate(string date) //验证日期是否符合 2009/01/01的形式
{
date = date.Length > 10 ? date.Substring(0, 9) : 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
<td align="left">
<table align="right">
<tr>
<td align="left">
<div style="width:450px;word-break:break-all">
<asp:Literal ID="ltContent" runat="server"></asp:Literal></div>
</td>
</tr>
</table>
<asp:Image ID="Image1" runat="server" Width="500px" Height="300px" />
</td>
DataList:
<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上传文件
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;
}
}
得到当前是星期几
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 ;
}
}
}
}