21 Sep 2005

文本块内的文本的空格、制表符和换行处理

最近在做我的AspxBoy.Com时遇到一个郁闷的问题

在使用ftb2.0做编辑器的时候

在内容筐内粘贴进

….

的代码

当提交后显示页面(如http://www.github.com/433/archive.aspx)内

内的制表符都变没了
求助与csdn:

http://community.csdn.net/Expert/topic/4282/4282303.xml?temp=.5363428

经网友指点采用新的ftb版本,发现提交到数据库内制表符没有被替换,
但是显示的时候还是全部被替换了
找啊找啊,一夜没睡,终于在
苏昱的样式表中文手册内找到了答案
原来在写

样式的时候
写上了
white-space:normal;
却没有用 去替换制表符,
我改用如下样式则显示正确了
white-space:pre;

而正确的使用方法是
语法:
white-space : normal | pre | nowrap
取值:
normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行
pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为

standards-compliant mode
支持。如果 !DOCTYPE 声明没有指定
standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象
nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性
说明:
设置或检索对象内空格字符的处理方式。
空格字符,像换行,空格,TAB,在HTML文档中默认的是被忽略的。当此属性设置为 normal
或者 nowrap 时,你可以使用不换行空格的命名实体   来添加空格,用 br 元素来添加换行。
此属性对你使用文档对象模型(DOM)操作的内容的影响与其对IE显示内容的影响一样。
此属性作用于块对象。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 whiteSpace

12 May 2005

从VB的语法理解 抽象方法

 


C#中 abstract void MethodName(....
 
VB中 MustOverride Sub MethodName(....


MustOverride”多容易理解啊

12 May 2005

从VB的语法理解 抽象方法

 


C#中 abstract void MethodName(....
 
VB中 MustOverride Sub MethodName(....


MustOverride”多容易理解啊

14 Apr 2005

今天头又晕了

写了如下代码,还跟踪了半个多小时,没找出来问题

if(strCarId.StartsWith())
                                    
{
                                         strCarId.Replace(
,U);
                                    }

                                    
else if(strCarId.StartsWith())
                                    
{
                                         strCarId.Replace(
,T);
                                    }

24 Feb 2005

1bu.com用的什么方法?

http://www.cnblogs.com.1bu.com/
可以访问
某些论坛竟然都可以登录甚至回复帖子
如:
http://www.im286.com.1bu.com/viewthread.php?tid=817721&extra=page%3D1
长次以往,1bu强奸了所有搜索引擎,先看看
http://www.baidu.com/s?wd=site%3A1bu.com&cl=3
神奇哦,据说这个是8U8弄的
http://www.im286.com/viewthread.php?tid=817711&extra=page%3D1

暂时放首页,吸引眼球讨论,谢谢!

16 Nov 2004

在Codebehind内动态设置显示内容的DataFormatString

在DataGrid内控制单元格显示内容的格式,如时间格式的时候
如果AutoGenerateColumns=false
那么绑定列中设置 DataFormatString="{0:dd/mm/yyyy}" 就可以做到了
可是AutoGenerateColumns=true的时候,就不好办了
一个办法,可以在sql语句中使用convert或者cast函数转换一下。
我们正在做的一个项目中
有个动态查询功能,是根据用户选择的条件、需显示的字段来动态生成Sql语句(破坏了三层结构,不知道其他朋友如何做?)来查询的。
如果用Sql的函数将非常麻烦,我采用了如下方法,在后台绑定数据的时候设置内容格式。

示例:

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<!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" xml:lang="gb2312" lang="gb2312">
<head>
<title> AutoGenerateColumns为true时,在Codebehind内设置内容的DataFormatString </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="title" content="" />
<meta name="author" content="活靶子,Huobazi,www.github.com" />
<meta name="subject" content="" />
<meta name="language" content="gb2312" />
<meta name="keywords" content="" />
<meta name="Copyright" content="www.github.com" />
<meta name="robots" content="all" />
<script language="c#" runat="server">
void BindGrid()
{
        DataTable dt 
= new DataTable();
        DataRow dr;
        dt.Columns.Add(
new DataColumn("我是日期"typeof(DateTime)));
        dt.Columns.Add(
new DataColumn("俺也是日期"typeof(DateTime))); 
        dt.Columns.Add(
new DataColumn("偶也是日期啊,怎么我还带着时间?",typeof(DateTime)));
        
for (int i = 0; i < 10; i++
        
{
            dr 
= dt.NewRow();
            dr[
0= DateTime.Now;
            dr[
1= DateTime.Now;
            dr[
2= DateTime.Now;  
            dt.Rows.Add(dr);
        }

        dg.DataSource
= dt;
        dg.DataBind();
}

void Page_Load(object o, EventArgs e)
{
    
if(!IsPostBack)
    
{
        BindGrid();
    }

}

void ItemDataBound(object o , DataGridItemEventArgs e)
{
    
if(e.Item.ItemType==ListItemType.Item ||e.Item.ItemType==ListItemType.AlternatingItem )
    
{
        DataRowView drv 
= (DataRowView)e.Item.DataItem;
        
for(int i=0;i<e.Item.Cells.Count;i++)
        
{     
            e.Item.Cells[i].Wrap 
=    false;
            string columnName
=drv.Row.Table.Columns[i].ColumnName;
            
if( columnName.StartsWith("") )
            
{
                e.Item.Cells[i].Text 
= ((DateTime)drv[columnName]).ToString("yyyy-MM-dd");
                
//也可以这样
                //e.Item.Cells[i].Text = DataBinder.Eval(e.Item.DataItem,columnName,"{0:yyyy-MM-dd}");
            }

            
if( columnName.StartsWith("") )
            
{
                e.Item.Cells[i].Text 
= ((DateTime)drv[columnName]).ToString("dd/MM/yy");
                
//也可以这样
                //e.Item.Cells[i].Text = DataBinder.Eval(e.Item.DataItem,columnName,"{0:yy-MM-dd}");
            }

        }

    }

}

</script>
</head>
<body>
<form runat="server">
        
<ASP:DataGrid id="dg" runat="server"       
            HeaderStyle-BackColor
="#aaaadd"
            AutoGenerateColumns
="true"
            OnItemDataBound
="ItemDataBound"
            Width
="100%"
        
>
        
</asp:DataGrid>        
</form>
</body>
</html>


 

http://www.github.com/Files/71/66/285.Aspx

16 Nov 2004

在Codebehind内动态设置显示内容的DataFormatString

在DataGrid内控制单元格显示内容的格式,如时间格式的时候
如果AutoGenerateColumns=false
那么绑定列中设置 DataFormatString="{0:dd/mm/yyyy}" 就可以做到了
可是AutoGenerateColumns=true的时候,就不好办了
一个办法,可以在sql语句中使用convert或者cast函数转换一下。
我们正在做的一个项目中
有个动态查询功能,是根据用户选择的条件、需显示的字段来动态生成Sql语句(破坏了三层结构,不知道其他朋友如何做?)来查询的。
如果用Sql的函数将非常麻烦,我采用了如下方法,在后台绑定数据的时候设置内容格式。

示例:

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<!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" xml:lang="gb2312" lang="gb2312">
<head>
<title> AutoGenerateColumns为true时,在Codebehind内设置内容的DataFormatString </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="title" content="" />
<meta name="author" content="活靶子,Huobazi,www.github.com" />
<meta name="subject" content="" />
<meta name="language" content="gb2312" />
<meta name="keywords" content="" />
<meta name="Copyright" content="www.github.com" />
<meta name="robots" content="all" />
<script language="c#" runat="server">
void BindGrid()
{
        DataTable dt 
= new DataTable();
        DataRow dr;
        dt.Columns.Add(
new DataColumn("我是日期"typeof(DateTime)));
        dt.Columns.Add(
new DataColumn("俺也是日期"typeof(DateTime))); 
        dt.Columns.Add(
new DataColumn("偶也是日期啊,怎么我还带着时间?",typeof(DateTime)));
        
for (int i = 0; i < 10; i++
        
{
            dr 
= dt.NewRow();
            dr[
0= DateTime.Now;
            dr[
1= DateTime.Now;
            dr[
2= DateTime.Now;  
            dt.Rows.Add(dr);
        }

        dg.DataSource
= dt;
        dg.DataBind();
}

void Page_Load(object o, EventArgs e)
{
    
if(!IsPostBack)
    
{
        BindGrid();
    }

}

void ItemDataBound(object o , DataGridItemEventArgs e)
{
    
if(e.Item.ItemType==ListItemType.Item ||e.Item.ItemType==ListItemType.AlternatingItem )
    
{
        DataRowView drv 
= (DataRowView)e.Item.DataItem;
        
for(int i=0;i<e.Item.Cells.Count;i++)
        
{     
            e.Item.Cells[i].Wrap 
=    false;
            string columnName
=drv.Row.Table.Columns[i].ColumnName;
            
if( columnName.StartsWith("") )
            
{
                e.Item.Cells[i].Text 
= ((DateTime)drv[columnName]).ToString("yyyy-MM-dd");
                
//也可以这样
                //e.Item.Cells[i].Text = DataBinder.Eval(e.Item.DataItem,columnName,"{0:yyyy-MM-dd}");
            }

            
if( columnName.StartsWith("") )
            
{
                e.Item.Cells[i].Text 
= ((DateTime)drv[columnName]).ToString("dd/MM/yy");
                
//也可以这样
                //e.Item.Cells[i].Text = DataBinder.Eval(e.Item.DataItem,columnName,"{0:yy-MM-dd}");
            }

        }

    }

}

</script>
</head>
<body>
<form runat="server">
        
<ASP:DataGrid id="dg" runat="server"       
            HeaderStyle-BackColor
="#aaaadd"
            AutoGenerateColumns
="true"
            OnItemDataBound
="ItemDataBound"
            Width
="100%"
        
>
        
</asp:DataGrid>        
</form>
</body>
</html>


 

http://www.github.com/Files/71/66/285.Aspx

30 Sep 2004

检测email地址是否存在的Web Service

检测email地址是否存在的Web Service
http://ws.cdyne.com/emailverify/ev.asmx?op=VerifyEmail

30 Sep 2004

检测email地址是否存在的Web Service

检测email地址是否存在的Web Service
http://ws.cdyne.com/emailverify/ev.asmx?op=VerifyEmail

20 Sep 2004

验证控件中显示的信息要换行竟然要用“" 啊

如果在javascript内
要用alert显示换行的信息则

<script language=javascript>
alert(
1 2 3)
</script>


今天我想RegularExpressionValidator的错误信息ValidationSummary被显示用MessageBox方式显示的时候
随手写下了ErrorMessage=“电话号码格式不正确!\r\n 正确的格式是8为数字”
<asp:RegularExpressionValidator id=“RegularExpressionValidator1” runat=“server” ErrorMessage=“电话号码格式不正确!  正确的格式是8为数字”
                                ValidationExpression
=“1{1}d{7}$” ControlToValidate=“box_danweiTelephone” Display=“Dynamic”></asp:RegularExpressionValidator>


“\r\n”竟然被原样显示了
改为
<asp:RegularExpressionValidator id=“RegularExpressionValidator1” runat=“server” ErrorMessage=“电话号码格式不正确!<br> 正确的格式是8为数字”
                                ValidationExpression
=“2{1}d{7}$” ControlToValidate=“box_danweiTelephone” Display=“Dynamic”>
</asp:RegularExpressionValidator>


居然可以了 真是有点想不通哦


  1. 1-9 [return]
  2. 1-9 [return]