ColumnsNames(i) = DS.Tables(0).Columns(i).ColumnName.ToString()
<script language="javascript">
showModalDialog(...);
</script>
this.TextboxStartDate.Text=Convert.ToDateTime(dr["StartDate"]).ToString("yyyy-MM-dd");
//省略字符串后面内容
SUBSTRING ( expression , start , length )
select substring(字段1,0,20)+'...' as A from 表名
CSS中的textOverflow属性可以将过多的文字用省略号进行表示,语法如下:
<SPAN
style="width:100px;overflow:hidden;text-overflow:ellipsis;">
<NOBR>text to display</NOBR>
</SPAN>
其中overflow必须设置为hidden。
通过这样的样式单我们可以实现在DataGrid中某个Column由于字符串太长,而用固定的字数再加上省略号来进行表示。
//改变绑定项的值
<%#Container.DataItem("sex").ToString=="1"?男:女%>
<%# ((int)DataBinder.Eval(Container.DataItem,"Agenda")==0)?"女":"男" %>
做一个判别程序
public string strsex(string str)
{
if(str == 1)
return str = "男";
if(str == 0)
return str = "女";
}
然后在页面绑定的时候就写
'<%# strsex(DataBinder.Eval(Container.DataItem,"字段名").ToString()) %>'
方法三:
Select case Sex when 0 then '女' else '男' End as Sex,其它字段 from 表名
对于数字型号进行类型转换成数字
Convert.ToInt16();
对于字符型对单引号替换成两个单引号
string.Raplace("'","''");
string id=((string)Request.QueryString("id")).Replace("'","''");
然后再进行拼凑
这样短短2句可以防范所有的sql注入攻击
//获取录入的值
DataGrid1.Items(i).FindControl("TextBox1").Text
Ctype(e.item.findcontrol("textbox1"),TextBox).text=""
//取得控件的焦点
private void Page_Load(object sender, System.EventArgs e)
{
Page.RegisterStartupScript("focus","<script>document.all." + TextBox1.ClientID + ".focus();</script>");
}
//在repeater中增加按钮
<asp:Button id="Button1" runat="server" Text="Button" OnCommand="Button1_OnClick" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Name")%>'></asp:Button>
//取得随机数
Random random1 = new Random();
int num1 = random1.Next(1,100);
string s=((System.Web.UI.WebControls.HyperLink)DL_Main.Items[i].FindControl("Hyperlink3")).Text;
Visible='<%# DataBinder.Eval(Container,"DataItem.StatusCode") == 'A'%>'
<%# DataBinder.Eval(Container.DataItem, "CreatedDateTime","{0:d}") %>
Response.Write("<" + "script>if(parent.document.all['url'] != null)parent.document.all['url'].value = '" + UploadPath+imageName + "';</" + "script>\n");
//正则表达式
"^\\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\\d+)(\\.\\d+)?$" //浮点数
^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$ //上传文件格式只能是.gif或.jpg
^(((19)|(20))\d{2})(((((-|/)0?)|0)[1-9])|((-|/)?1[0-2]))((((((-|/)0?)|0)[1-9])|((-|/)?[1-2][0-9]))|((-|/)?3[0-1]))$ //日期格式判断
^[\u4E00-\u9FA5]*$ //任意中文
[^'^“^”^\^!^@^#^$^%^\^^&^*^(^)^<^>^《^》^?^。^,^?^¥^\{^\}^\][^\]] {2,} //图片标题至少2个字符,不应包含'“ ” ! @ # $ % ^ & * ( ) < > 《 》{ } [ ] ? 。,? ¥
//删除前提示确认
btnID.Attributes.Add("onClick","return confirm (\"确定要删除吗?\") ;");
btnID.Click+=new EventHandler(DataDelete);
....
public void DataDelete(object Sender,EventArgs e)
{
.....
}
DataSource="<%# GetCategory() %>"
DataTextField="categoryname"
DataValueField="categoryid"
SelectedIndex='<%# GetCategoryID((string)DataBinder.Eval(Container.DataItem, "categoryname")) %>'
this.DropDownListProvince.Items.Add(new ListItem("请选择","a"));
this.DropDownListProvince.SelectedValue="a";
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
Label label=(Label)(e.Item.FindControl("lblSex"));
if(e.Item.Cells[0].Text=="0")
{
label.Text="女";
}
if(e.Item.Cells[0].Text=="1")
{
label.Text="男";
}
}
取得页面执行时间的代码
protected void Application_BeginRequest(Object sender, EventArgs e)
{
Application["StartTime"] = System.DateTime.Now;
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
System.DateTime startTime = (System.DateTime)Application["StartTime"];
System.DateTime endTime = System.DateTime.Now;
System.TimeSpan ts = endTime - startTime;
Response.Write("页面执行时间:"+ ts.Milliseconds +" 毫秒");
}
如何计算字符的长度和截取字符(小节)
在此之前,有很多问题问如何判断输入的字符的长度,一般情况很多的人都说一个一个的字取判断,还有全角判断,两种方法:
一:
Public Function GetStringLengthB(ByVal checkString As String) As Integer
Dim firstB As String
Dim asc As Integer
Dim i As Integer
Dim count As Integer
Dim stringLength As Integer
Dim strKana As String
strKana = "呆若木鸡基本原理sadfsdaf"
If
Microsoft.VisualBasic.Trim(checkString) = "" Then
Return 0
End If
stringLength = checkString.Length
count = 0
For i = 1 To stringLength
firstB =
Microsoft.VisualBasic.Mid(checkString, i, 1)
asc =
Microsoft.VisualBasic.AscW(firstB)
If asc < 0 or asc > 255 Then
If strKana.IndexOf(firstB) = -1 Then
count = count + 2
Else
count = count + 1
End If
Else
count = count + 1
End If
Next
Return count
End Function
二:
Private Function GetLength(ByVal str As String) As Integer
Dim encodingData() As Byte
encodingData = System.Text.Encoding.Default.GetBytes(str)
Return encodingData.Length
End Function
对于字符的截取那就可以采用第二种方法,是以位截取,不是以个数截取。
Private Function GetLength(ByVal str As String,Byval length as string) As string
Dim encodingData() As Byte
encodingData = System.Text.Encoding.Default.GetBytes(str)
If length < encodingData.Length Then
Return System.Text.Encoding.Default.GetString(encodingData, 0, length )
Else
Return str
End If
End Function
//把字体竖着显示
例:
.aspx
<style type="text/css">
.mylable {
writing-mode: tb-rl;
text-align: left;
font-family: "Courier New", Courier, monospace;
font-size: 9pt;
}
</style>
<form runat="server">
<asp:Label id="Label2" runat="server" CssClass="mylable">Label</asp:Label>
</form>
//url传递中文的解决方案总结
1.设置web.config文件。(我不喜欢设置成这样)
<system.web>
......
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
......
</system.web>
或者:
aspx文件中:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
string Name = "中文参数";
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));
>> 进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name));
或者:
NavigateURL ='<%# "WebForm2.aspx?Singer=" + HttpUtility.UrlEncode("中国人", System.Text.Encoding.GetEncoding("GB2312")) %>'
3.如果是从 .HTML 文件向 .Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
<script language="JavaScript">
function GoUrl()
{
var Name = "中文参数";
location.href = "B.aspx?Name="+escape(Name);
}
</script>
<body onclick="GoUrl()">
>> 进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name));
一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。
————————————————————
在html中实现编解码:
<script language="javascript">
function openUrl(src)
{
var strUrl=escape(src);
window.open(strUrl);
}
function change_url(src)
{
document.location.href=escape(src);
}
</script>
在新窗口保存
<a href='"css/合同.doc");' >交合同</a>
当前位置保存,无闪烁。
<a href="#" onclick="css/合同.doc")>合同</a>
注意:路径中的斜线是:“/”,而不是“\”,否则也不行啊。
----------------------------------------
前一阵遇到在做.net Web开发时,碰到一个很奇怪的问题(我是.net新手,所以问题比较多),就是Url中,如果将中文字符作为参数值传递时,QueryString得到的值可能会出错。简单的说,比如下面这个Url:
UrlParmTest.aspx?parm1=中国&parm2=中国人
在Request.QueryString时,parm1和parm2得到都是"中国",显然出现了问题,可是在某些情况下却是正常的。
如果请求不是直接通过URL,而使用Response.Redirect在服务器端操作,没有遇到过类似的问题。
当时我想中文是双字节编码,可能传递的时候就是有不确定性,还是用英文好。
可是为什么在Server端Redirect就是正常的,问题在哪里呢?
昨天我询问在GTEC的同学,才大概明白了一些:
如果在.cs文件中设置中文参数,请在中文参数外使用Server.UrlEncode("中文")对中文进行Encode
如果在.aspx文件中设置,请使用<%=Server.UrlEncode("中文")%>进行Encode
在QueryString时,不用再进行Decode,可以获得正常的中文字符串
下面是同学给出的一些解释:
UrlEncode把一些多字节字符转换成url里允许的单字节字符,本来浏览器就会自动做的,但是目前确实存在一些问题,所以自己再Encode一下,在接受端会自动对Url进行Decode。
我想Response.Redirect可能可以确保作Encode的工作,所以没有问题。
//窗口全屏
1. window.showModalDialog
var strFeatures = "dialogWidth=1024;dialogHeight=760;center=yes;help=no;status=no";
var objTBWorker_Id = document.all.TBWorker_Id;
var sPath = "TestEQ1.asp?param=test&worker_id="+objTBWorker_Id.value+"&paper=p001";
var sTemp = "";
var objButton2 = document.all.Button2;
objButton2.click();
var strReturnMessage = window.showModalDialog(sPath,sTemp,strFeatures);
<script language="javascript">
showModalDialog(...);
</script>
this.TextboxStartDate.Text=Convert.ToDateTime(dr["StartDate"]).ToString("yyyy-MM-dd");
//省略字符串后面内容
SUBSTRING ( expression , start , length )
select substring(字段1,0,20)+'...' as A from 表名
CSS中的textOverflow属性可以将过多的文字用省略号进行表示,语法如下:
<SPAN
style="width:100px;overflow:hidden;text-overflow:ellipsis;">
<NOBR>text to display</NOBR>
</SPAN>
其中overflow必须设置为hidden。
通过这样的样式单我们可以实现在DataGrid中某个Column由于字符串太长,而用固定的字数再加上省略号来进行表示。
//改变绑定项的值
<%#Container.DataItem("sex").ToString=="1"?男:女%>
<%# ((int)DataBinder.Eval(Container.DataItem,"Agenda")==0)?"女":"男" %>
做一个判别程序
public string strsex(string str)
{
if(str == 1)
return str = "男";
if(str == 0)
return str = "女";
}
然后在页面绑定的时候就写
'<%# strsex(DataBinder.Eval(Container.DataItem,"字段名").ToString()) %>'
方法三:
Select case Sex when 0 then '女' else '男' End as Sex,其它字段 from 表名
对于数字型号进行类型转换成数字
Convert.ToInt16();
对于字符型对单引号替换成两个单引号
string.Raplace("'","''");
string id=((string)Request.QueryString("id")).Replace("'","''");
然后再进行拼凑
这样短短2句可以防范所有的sql注入攻击
//获取录入的值
DataGrid1.Items(i).FindControl("TextBox1").Text
Ctype(e.item.findcontrol("textbox1"),TextBox).text=""
//取得控件的焦点
private void Page_Load(object sender, System.EventArgs e)
{
Page.RegisterStartupScript("focus","<script>document.all." + TextBox1.ClientID + ".focus();</script>");
}
//在repeater中增加按钮
<asp:Button id="Button1" runat="server" Text="Button" OnCommand="Button1_OnClick" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Name")%>'></asp:Button>
//取得随机数
Random random1 = new Random();
int num1 = random1.Next(1,100);
string s=((System.Web.UI.WebControls.HyperLink)DL_Main.Items[i].FindControl("Hyperlink3")).Text;
Visible='<%# DataBinder.Eval(Container,"DataItem.StatusCode") == 'A'%>'
<%# DataBinder.Eval(Container.DataItem, "CreatedDateTime","{0:d}") %>
Response.Write("<" + "script>if(parent.document.all['url'] != null)parent.document.all['url'].value = '" + UploadPath+imageName + "';</" + "script>\n");
//正则表达式
"^\\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\\d+)(\\.\\d+)?$" //浮点数
^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$ //上传文件格式只能是.gif或.jpg
^(((19)|(20))\d{2})(((((-|/)0?)|0)[1-9])|((-|/)?1[0-2]))((((((-|/)0?)|0)[1-9])|((-|/)?[1-2][0-9]))|((-|/)?3[0-1]))$ //日期格式判断
^[\u4E00-\u9FA5]*$ //任意中文
[^'^“^”^\^!^@^#^$^%^\^^&^*^(^)^<^>^《^》^?^。^,^?^¥^\{^\}^\][^\]] {2,} //图片标题至少2个字符,不应包含'“ ” ! @ # $ % ^ & * ( ) < > 《 》{ } [ ] ? 。,? ¥
//删除前提示确认
btnID.Attributes.Add("onClick","return confirm (\"确定要删除吗?\") ;");
btnID.Click+=new EventHandler(DataDelete);
....
public void DataDelete(object Sender,EventArgs e)
{
.....
}
DataSource="<%# GetCategory() %>"
DataTextField="categoryname"
DataValueField="categoryid"
SelectedIndex='<%# GetCategoryID((string)DataBinder.Eval(Container.DataItem, "categoryname")) %>'
this.DropDownListProvince.Items.Add(new ListItem("请选择","a"));
this.DropDownListProvince.SelectedValue="a";
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
Label label=(Label)(e.Item.FindControl("lblSex"));
if(e.Item.Cells[0].Text=="0")
{
label.Text="女";
}
if(e.Item.Cells[0].Text=="1")
{
label.Text="男";
}
}
取得页面执行时间的代码
protected void Application_BeginRequest(Object sender, EventArgs e)
{
Application["StartTime"] = System.DateTime.Now;
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
System.DateTime startTime = (System.DateTime)Application["StartTime"];
System.DateTime endTime = System.DateTime.Now;
System.TimeSpan ts = endTime - startTime;
Response.Write("页面执行时间:"+ ts.Milliseconds +" 毫秒");
}
如何计算字符的长度和截取字符(小节)
在此之前,有很多问题问如何判断输入的字符的长度,一般情况很多的人都说一个一个的字取判断,还有全角判断,两种方法:
一:
Public Function GetStringLengthB(ByVal checkString As String) As Integer
Dim firstB As String
Dim asc As Integer
Dim i As Integer
Dim count As Integer
Dim stringLength As Integer
Dim strKana As String
strKana = "呆若木鸡基本原理sadfsdaf"
If

Return 0
End If
stringLength = checkString.Length
count = 0
For i = 1 To stringLength
firstB =

asc =

If asc < 0 or asc > 255 Then
If strKana.IndexOf(firstB) = -1 Then
count = count + 2
Else
count = count + 1
End If
Else
count = count + 1
End If
Next
Return count
End Function
二:
Private Function GetLength(ByVal str As String) As Integer
Dim encodingData() As Byte
encodingData = System.Text.Encoding.Default.GetBytes(str)
Return encodingData.Length
End Function
对于字符的截取那就可以采用第二种方法,是以位截取,不是以个数截取。
Private Function GetLength(ByVal str As String,Byval length as string) As string
Dim encodingData() As Byte
encodingData = System.Text.Encoding.Default.GetBytes(str)
If length < encodingData.Length Then
Return System.Text.Encoding.Default.GetString(encodingData, 0, length )
Else
Return str
End If
End Function
//把字体竖着显示
例:
.aspx
<style type="text/css">
.mylable {
writing-mode: tb-rl;
text-align: left;
font-family: "Courier New", Courier, monospace;
font-size: 9pt;
}
</style>
<form runat="server">
<asp:Label id="Label2" runat="server" CssClass="mylable">Label</asp:Label>
</form>
//url传递中文的解决方案总结
1.设置web.config文件。(我不喜欢设置成这样)
<system.web>
......
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
......
</system.web>
或者:
aspx文件中:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
string Name = "中文参数";
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));
>> 进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name));
或者:
NavigateURL ='<%# "WebForm2.aspx?Singer=" + HttpUtility.UrlEncode("中国人", System.Text.Encoding.GetEncoding("GB2312")) %>'
3.如果是从 .HTML 文件向 .Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
<script language="JavaScript">
function GoUrl()
{
var Name = "中文参数";
location.href = "B.aspx?Name="+escape(Name);
}
</script>
<body onclick="GoUrl()">
>> 进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name));
一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。
————————————————————
在html中实现编解码:
<script language="javascript">
function openUrl(src)
{
var strUrl=escape(src);
window.open(strUrl);
}
function change_url(src)
{
document.location.href=escape(src);
}
</script>
在新窗口保存
<a href='"css/合同.doc");' >交合同</a>
当前位置保存,无闪烁。
<a href="#" onclick="css/合同.doc")>合同</a>
注意:路径中的斜线是:“/”,而不是“\”,否则也不行啊。
----------------------------------------
前一阵遇到在做.net Web开发时,碰到一个很奇怪的问题(我是.net新手,所以问题比较多),就是Url中,如果将中文字符作为参数值传递时,QueryString得到的值可能会出错。简单的说,比如下面这个Url:
UrlParmTest.aspx?parm1=中国&parm2=中国人
在Request.QueryString时,parm1和parm2得到都是"中国",显然出现了问题,可是在某些情况下却是正常的。
如果请求不是直接通过URL,而使用Response.Redirect在服务器端操作,没有遇到过类似的问题。
当时我想中文是双字节编码,可能传递的时候就是有不确定性,还是用英文好。
可是为什么在Server端Redirect就是正常的,问题在哪里呢?
昨天我询问在GTEC的同学,才大概明白了一些:
如果在.cs文件中设置中文参数,请在中文参数外使用Server.UrlEncode("中文")对中文进行Encode
如果在.aspx文件中设置,请使用<%=Server.UrlEncode("中文")%>进行Encode
在QueryString时,不用再进行Decode,可以获得正常的中文字符串
下面是同学给出的一些解释:
UrlEncode把一些多字节字符转换成url里允许的单字节字符,本来浏览器就会自动做的,但是目前确实存在一些问题,所以自己再Encode一下,在接受端会自动对Url进行Decode。
我想Response.Redirect可能可以确保作Encode的工作,所以没有问题。
//窗口全屏
1. window.showModalDialog
var strFeatures = "dialogWidth=1024;dialogHeight=760;center=yes;help=no;status=no";
var objTBWorker_Id = document.all.TBWorker_Id;
var sPath = "TestEQ1.asp?param=test&worker_id="+objTBWorker_Id.value+"&paper=p001";
var sTemp = "";
var objButton2 = document.all.Button2;
objButton2.click();
var strReturnMessage = window.showModalDialog(sPath,sTemp,strFeatures);