C#验证表单的静态类,方便以后使用
[CODE=csharp]
using System;

namespace Youth.Admin
{
///

/// 表单验证类
///

public sealed class Validator
{
#region Check(object obj,string reg)验证基函数
public static bool Check(object obj,string reg)
{
return System.Text.RegularExpressions.Regex.IsMatch(obj.ToString(), reg, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
}
#endregion

#region IsNotEmpty验证是否为空
///

/// IsNotEmpty验证是否为空
///

public static bool IsNotEmpty(object obj)
{
return Check(obj,@”.?[^\s ]+”);
}
#endregion

#region 验证是不是正常字符 字母,数字,下划线的组合
///

/// 验证是不是正常字符 字母,数字,下划线的组合
///

/// ///
public static bool IsNormalChar(object obj)
{
return Check(obj, @”[\w\d_]+”);
}
#endregion

#region IsEnglish验证是否为英文字符及下划线
///

/// IsEnglish验证是否为英文字符及下划线
///

public static bool IsEnglish(object obj)
{
return Check(obj,@”^[a-zA-Z0-9_\-]+$”);
}
#endregion

#region IsChinese验证是否为中文字符
///

/// IsChinese验证是否为中文字符
///

public static bool IsChinese(object obj)
{
return Check(obj, @”^[\u0391-\uFFE5]+$”);
}
#endregion

#region IsDate是否为有效的日期格式
///

/// IsDate是否为有效的日期格式
///

public static bool IsDate(object obj)
{
try
{
DateTime time = Convert.ToDateTime(obj);
return true;
}
catch
{
return false;
}
}
#endregion

#region IsEmail是否为有效的邮箱格式
///

/// IsEmail是否为有效的邮箱格式
///

public static bool IsEmail(object obj)
{
return Check(obj, @”^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$”);
}
#endregion

#region IsUrl是否为有效的超链接格式
///

/// IsUrl是否为有效的超链接格式
///

public static bool IsUrl(object obj)
{
return Check(obj, @”^(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(www\.))+(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9\&%_\./-~-]*)?$”);
}
#endregion

#region IsPhone是否为有效的电话号码
///

/// 例如:XXX-XXXXXXX
///

public static bool IsPhone(object obj)
{
return Check(obj, @”^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$”);
}
#endregion

#region IsMobile是否为有效的手机号码
///

/// IsMobile是否为有效的手机号码
///

public static bool IsMobile(object obj)
{
return Check(obj, @”^((\(\d{2,3}\))|(\d{3}\-))?((13\d{9})|(159\d{8}))$”);
}
#endregion

#region IsIP是否为有效的IP地址
///

/// CheckIP是否为有效的IP地址
///

public static bool IsIP(object obj)
{
return Check(obj, @”^(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])$”);
}
#endregion

#region IsZipCode是否为有效的邮政编码
///

///IsZipCode是否为有效的邮政编码
///

public static bool IsZipCode(object obj)
{
return Check(obj, @”^[1-9]\d{5}$”);
}
#endregion

#region IsIdCard是否为有效的身份证号码
///

/// IsIdCard是否为有效的身份证号码
///

public static bool IsIdCard(object obj)
{
return Check(obj, @”(^\d{15}$)|(^\d{17}[0-9Xx]$)”);
}
#endregion

#region IsQQ是否为有效的QQ号码
///

/// IsQQ是否为有效的QQ号码
///

public static bool IsQQ(object obj)
{
return Check(obj, @”^[1-9]\d{4,10}$”);
}
#endregion

#region IsMSN是否为有效的MSN帐户
///

/// IsMSN是否为有效的MSN帐户
///

public static bool IsMSN(object obj)
{
return Check(obj, @”^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$”);
}
#endregion

#region IsNumber验证是不是数字
///

/// IsNumber验证是不是数字
///

public static bool IsNumber(object obj)
{
return Check(obj, @”^[-\+]?\d+(\.\d+)?$”);
}
#endregion

#region IsInteger验证是不是整数
///

/// IsInteger验证是不是整数
///

public static bool IsInteger(object obj)
{
return Check(obj, @”^-?\d+$”);
}
#endregion

#region IsUnsignedInteger验证是不是正整数
///

/// IsUnsignedInteger验证是不是正整数
///

public static bool IsUnsignedInteger(object obj)
{
return Check(obj, @”^[0-9]*[1-9][0-9]*$”);
}
#endregion

#region IsSignedInteger验证是不是负整数
///

/// IsSignedInteger验证是不是负整数
///

public static bool IsSignedInteger(object obj)
{
return Check(obj, @”^-[0-9]*[1-9][0-9]*$”);
}
#endregion
}
}

[/CODE]

写了一个弹出框的类,方便以后使用

[CODE=csharp]
using System;
using System.Web;
///

/// Message 的摘要说明
///

namespace Youth.Admin
{
public sealed class Message
{
#region 输出js
///

/// 输出js
///

/// 传入js代码 public static void Write(string str)
{
HttpContext.Current.Response.Write(““);
}
#endregion

#region 弹出框 Msg(string msg)
public static void Msg(string msg)
{
Write(“alert(‘”+msg+”‘);”);
}
#endregion

#region 弹出框并后退 MsgTo(string msg)
public static void MsgTo(string msg)
{
Write(“alert(‘” + msg + “‘);history.back();”);
}
#endregion

#region 弹出框并到第几页 MsgTo(string msg,int page)
public static void MsgTo(string msg,int page)
{
Write(“alert(‘” + msg + “‘);history.back(‘”+page+”‘);”);
}
#endregion

#region 到达第几页 MsgTo(int page)
public static void MsgTo(int page)
{
Write(“history.back(‘” + page + “‘);”);
}
#endregion

#region 弹出框并转跳地址 MsgTo(string msg,string url)
public static void MsgTo(string msg,string url)
{
Write(“alert(‘” + msg + “‘);location.href='”+url+”‘;”);
}
#endregion

}
}

[/CODE]

已经将表名,列名,和搜索条件分开,使用时只要将这三个替换一下就可以了。

string tablename = “LinkCls”; //表名
string idname = “Cls_ID”; //列id名
string TopNum = ((page – 1) * pagenum).ToString(); //计算游标地址,无需更改
string sql = “”; //sql分页语句,先找到游标地址,之后找出前pagenum个记录
//下面的为降序
if (sqlcondition == “”)
{
sql = “select top ” + pagenum.ToString() + ” * FROM ” + tablename + ” WHERE ” + idname + “<(select ISNULL(MIN(" + idname + "),99999999) FROM (select TOP " + TopNum + " " + idname + " from " + tablename + " order by " + idname + " desc) A) order by " + @idname + " desc";
}
else
{
sql = “select top ” + pagenum.ToString() + ” * FROM ” + tablename + ” WHERE ” + idname + “<(select ISNULL(MIN(" + idname + "),99999999) FROM (select TOP " + TopNum + " " + idname + " from " + tablename + " where " + sqlcondition + " order by " + idname + " desc) A) and " + sqlcondition + " order by " + @idname + " desc";
}

//下面的为升序
if (sqlcondition == “”)
{
sql = “select top ” + pagenum.ToString() + ” * FROM ” + tablename + ” WHERE ” + idname + “>(select ISNULL(Max(” + idname + “),0) FROM (select TOP ” + TopNum + ” ” + idname + ” from ” + tablename + ” order by ” + idname + “) A) order by ” + @idname + “”;
}
else
{
sql = “select top ” + pagenum.ToString() + ” * FROM ” + tablename + ” WHERE ” + idname + “>(select ISNULL(Max(” + idname + “),0) FROM (select TOP ” + TopNum + ” ” + idname + ” from ” + tablename + ” where ” + sqlcondition + ” order by ” + idname + “) A) and ” + sqlcondition + ” order by ” + @idname + “”;
}

 今天想写一个c#的模拟confirm的静态函数,以后写程序的时候好直接调用,开始我想到了把js中的confirm的返回值存入cookie里面,然后通过c#获取,结果发现每次获取的都是上次存入的值。

网上看了很多别人的文章,才明白,除非用ajax(代价太大了),不然页面必须回传两次:第一次用户发送请求,服务端接受请求,调用js的confirm,第二次用户点击确认或取消按钮时,发送请求处理相应的操作,所以必须有两次回传。

还有种方式就是先在客户端调用confirm,确认就用触发事件,这种思路可能有隐藏域和给控件绑定一个js操作。

1、隐藏域:把客户端点击confirm的值存入隐藏域里面,然后在C#里面获取,(但是这样写成类调用时必须在页面新建一个隐藏域)

2、绑定js:在pageload里面增加控件相应的js操作(例如):Button1.Attributes.Add("onclick", "return confirm(‘message’)");

这样点击确认才执行Button1触发的事件

到了最后,我还是放弃了写这个静态类。两次回传我觉得这样对用户体验不好,再说confirm用的也不是很多,上面两种方法可以应对了,如果你对这有兴趣,请看下面两个人的文章:

http://www.cnblogs.com/volnet/archive/2008/12/03/1319609.html

http://www.cnblogs.com/jintan/archive/2008/10/25/1319308.html

如果您有更好的方法还望赐教!~

 RegisterStartupScript是page里面的方法,必须实例化一个page,代码就很简单了

System.Web.UI.Page page = new System.Web.UI.Page();

System.Web.UI.ClientScriptManager cs = page.ClientScript;

cs.RegisterStartupScript(typeof(string), "1", "alert(‘IT元素’);", true);

 

 

昨天全盘格了,装了vs2005之后,安装iis,结果运行出现

使用XSL 样式表无法查看XML 输入。请更正错误然后单击刷新按钮 …(ie)

chrome:

This page contains the following errors:

error on line 1 at column 2: StartTag: invalid element name
error on line 1 at column 2: Encoding error
Below is a rendering of the page up to the first error.

不同浏览器不一样,原因是没有将aspnet程序安装进入iis里面,找到sdk命令提示(可以在开始–程序……那里或者安装目录里面查找),输入aspnet_regiis.exe /i,就ok了。

现在我只加上这一种方法(能有效解决问题就行了),其他的还没有遇到,自己没有试验就不放心,暂时不加上去了。

这种情况是在Ie6下png图片当背景,然后让png透明,并且png上面的链接有效

1、解决透明:使用滤镜和css 的hack (需要注意的是hack里面的图片地址是相对网页的,css是图片地址是相对css文件的)

.submenu h3{  background:url(mu_bg.png) no-repeat; }
/* ie6 */* html .submenu h3 { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src=’images/mu_bg.png’);background:none; }
 

2、解决链接失效

在连接上的a的样式里面加上position:relative;

反正就是麻烦,大家能用gif的就不要用png了,真折腾

先来看效果:

 

jquery实现弹出框

如果弹出的是层,设置高宽应该好做一点

js代码如下:

[CODE=javascript]

$(document).ready(function(){
$(“#opennew_bg”).css({
“height”: document.documentElement.clientHeight
});

/*鼠标移过图像*/
$(“.op_close”).find(“img”).hover(
function(){
$(“.op_close”).find(“img”).attr(“src”,”../images/close1.gif”);
},
function(){
$(“.op_close”).find(“img”).attr(“src”,”../images/close.gif”);
}
);

/*关闭打开弹出层*/
$(“#opennew_bg”).dblclick(function(){
if($(“#opennew_con”).css(“display”)==”none”){ $(“#opennew_con”).fadeIn(“slow”); $(“#opennew_bg”).css(“display”,”block”); $(“#opennew_bg”).fadeTo(“slow”,0.6);}
else {$(“#opennew_con”).fadeOut(“slow”); $(“#opennew_bg”).fadeTo(“slow”,0,function(){$(“#opennew_bg”).css(“display”,”none”);});showlist(page); /*此为更改后的刷新情况,不同页面可能不同*/}
});
$(“.op_close”).find(“img”).click(function(){$(“#opennew_bg”).dblclick();});

});/*(document).ready end*/
function opennew(url,h,w){
$(“#op_content”).html(“