2012年4月23日 星期一

EVAL傳多值的方法

<asp:HyperLink ID="hlkBoxNo" runat="server"
Text='<%# Eval("BoxNo","{0}") %>'
CssClass="BoxNo"
Target="_blank"
NavigateUrl  = '<%# String.Format("~/ABST/sysMM/MM_p_BoxList.aspx?BN = {0} & ST = {1} & CP = {2} & AD = {3}",Eval("MM_Box"),Eval("zsd001_AF"),Eval("zsd001_AL"),Eval("zsd001_AG")) %>'>
</asp:HyperLink>

2012年4月17日 星期二

如何讓Label固定長度並且向右對齊

在Style裡設定
    text-align: right;
    display: inline-block;


css範例
.PA
{
    color: #3333FF;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    text-align: right;
    width: 35px;
    display: inline-block;
}

2012年4月10日 星期二

SQL 刪除資料表內的所有紀錄 Truncate / Delete


使用Truncate Table 會移除資料表中的所有資料列,但會保留資料表結構及其欄位、條件約束、索引等。

如果該Table包含識別欄位,這個識別編號會重設為原本定義的初始值。如果未定義任何初始值,就會使用預設值 1。

Trance Table 與Delete 比較的優點為:

1.使用的交易記錄空間較少:Truncate Table會取消配置用來儲存資料表資料的資料頁,以移除資料,所以交易記錄只會記錄頁面的取消配置。

2.通常會使用較少鎖定:Delete會鎖定每一筆資料,以便執行刪除,但Truncate Table只鎖定資料表和頁面,不會鎖定每個資料列。

3.速度較快:綜合以上兩點,Truncate Table會比Delete快

語法範例:

TRUNCATE TABLE MyTestTable

DELETE FROM MyTestTable

2012年4月9日 星期一

QueryString 網址參數的長度

結論:請控制在2048字元內比較保險


熟悉Web系統開發的人應該多少都有踩過這個問題,就是當我們的QueryString長度超過2048字元時,QueryStringt會被截斷或者出現Error

嚴格來說,不同的瀏覽器都會有不同的結果,以IE6以上來說,就是2048個字元,FireFox3測試的結果是超過10000個字元都還可以運作,Chrome測試的結果也是相同

而ASP.NET在4.0的版本中提供了兩個參數maxRequestPathLength、maxQueryStringLength分別用來設定URL的最大長度與QueryString的最大長度限制

在web.config中加入以下設定,把maxQueryStringLength設定到20480的長度:

<httpRuntime maxQueryStringLength="20480" />
再執行前面三個瀏覽器,這時候不管是FireFox或者Chrome都可以正常被執行了,由此可見可以透過調整設定讓QueryString的最大長度放寬。
但ASP.NET提供了設定QueryString長度限制,但IE本身卻會把超過2048長度的URL給截斷,保險起見,還是會保留目前的做法來實現。


2012年4月1日 星期日

ASP.NET GRIDVIEW的背光設定


作用:當滑鼠滑到資料列時,能將該列資料利用顏色特別顯示出來,滑開時又恢復了原來的底色.

在GridView的RowDataBound加入每列的屬性值

If e.Row.RowType = DataControlRowType.DataRow Then
            '設定狀態
            Dim lblStatus As Label = e.Row.FindControl("lblStatus")
            Dim lblStatusName As Label = e.Row.FindControl("lblStatusName")
            Select Case lblStatus.Text
                Case "P"
                    lblStatusName.Text = "準備"
                    e.Row.BackColor = Drawing.Color.LavenderBlush
               Case "Y"
                    lblStatusName.Text = "上架"
                    e.Row.BackColor = Drawing.Color.White
                Case "N"
                    lblStatusName.Text = "下架"
                    e.Row.BackColor = Drawing.Color.LightGray
            End Select
            '==設定滑鼠經過時變色
            e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='Gold';")
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c")
'本語法可在離開時,讓列回覆原來設定的顏色
        End If




ASP.NET Bind/Eval 寫法


Eval和Bind的格式化:

1.Eval是單向繫結,既可以使用系统定義的函數格式化,也可以調用自己定義的格式化函數(如例子中的MyFormatFunction函数)。

<%# string.Format("{0:yyyy-MM-dd}",Eval("BirthDate")) %>
<%# MyFormatFunction(Eval("BirthDate")) %>



2.Bind是雙向的,格式化字符串既被用於格式化顯示,又要作為數據入入驗証。

<%# Bind("BirthDate","{0:yyyy-MM-dd}") %>
<%# Bind("Birthday","{0:M.d}") %>

ASP.NET string.Format 格式參數


{0:d} YY-MM-DD
{0:p} 百分比00.00%
{0:N2} 12.68
{0:N0} 13
{0:c2} $12.68
{0:d} 3/23/2003
{0:T} 12:00:00 AM
{0:男;;女}

DataGrid-數據格式設置表達式

數據格式設置表達式
.NET Framework 格式設置表達式,它在數據顯示在列中之前先應用于數據。此表達式由可選靜態文本和用以下格式表示的格式說明符組成:
{0:format specifier}

零是參數索引,它指示列中要格式化的數據元素;因此,通常用零來指示第一個(且唯一的)元素。format specifier 前面有一個冒號 (:),它由一個或多個字母組成,指示如何格式化數據。可以使用的格式說明符取決于要格式化的數據類型:日期、數字或其他類型。下表顯示了不同數據類型的格式設置表達式的示例。有關格式設置表達式的更多信息,請參見格式化類型。

Price: {0:C}
numeric/decimal
顯示“Price:”,后跟以貨幣格式表示的數字。貨幣格式取決于通過 Page 指令或 Web.config 文件中的區域性屬性指定的區域性設置。

{0:D4}
integer(不能和小數一起使用。)
在由零填充的四個字符寬的字段中顯示整數。

{0:N2}%
numeric
顯示精確到小數點后兩位的數字,后跟“%”。

{0:000.0}
numeric/decimal
四舍五入到小數點后一位的數字。不到三位的數字用零填充。

{0:D}
date/datetime
長日期格式(“Thursday, August 06, 1996”)。日期格式取決于頁或 Web.config 文件的區域性設置。

{0:d}
date/datetime

短日期格式(“12/31/99”)。
{0:yy-MM-dd}

date/datetime

用數字的年-月-日表示的日期(96-08-06)。

2006-02-22 | asp.net數據格式的Format– DataFormatString

我們在呈現數據的時候,不要將未經修飾過的數據呈現給使用者。例如金額一萬元,如果我們直接顯示「10000」,可能會導致使用者看成一千或十萬,造成使用者閱讀數據上的困擾。若我們將一萬元潤飾后輸出為「NT$10,000」,不但讓使比較好閱讀,也會讓使用者減少犯錯的機會。
下列畫面為潤飾過的結果:
上述數據除了將DataGrid Web 控件以顏色來區隔記錄外,最主要將日期、單價以及小計這三個計字段的數據修飾的更容易閱讀。要修飾字段的輸出,只要設定字段的DataFormatString 屬性即可;其使用語法如下:

DataFormatString=”{0:格式字符串}”

我們知道在DataFormatString 中的 {0} 表示數據本身,而在冒號后面的格式字符串代表所們希望數據顯示的格式;另外在指定的格式符號后可以指定小數所要顯示的位數。例如原來的數據為「12.34」,若格式設定為 {0:N1},則輸出為「12.3」。其常用的數值格式如下表所示:

格式字符串 資料 結果
“{0:C}” 12345.6789 $12,345.68
“{0:C}” -12345.6789 ($12,345.68)
“{0:D}” 12345 12345
“{0:D8}” 12345 00012345
“{0:E}” 12345.6789 1234568E+004
“{0:E10}” 12345.6789 1.2345678900E+004
“{0:F}” 12345.6789 12345.68
“{0:F0}” 12345.6789 12346
“{0:G}” 12345.6789 12345.6789
“{0:G7}” 123456789 1.234568E8
“{0:N}” 12345.6789 12,345.68
“{0:N4}” 123456789 123,456,789.0000
“Total: {0:C}” 12345.6789 Total: $12345.68

其常用的日期格式如下表所示:

格式 說明 輸出格式
d 精簡日期格式 MM/dd/yyyy
D 詳細日期格式 dddd, MMMM dd, yyyy
f 完整格式 (long date + short time) dddd, MMMM dd, yyyy HH:mm
F
完整日期時間格式
(long date + long time)
dddd, MMMM dd, yyyy HH:mm:ss
g 一般格式 (short date + short time) MM/dd/yyyy HH:mm
G 一般格式 (short date + long time) MM/dd/yyyy HH:mm:ss
m,M 月日格式 MMMM dd
s 適中日期時間格式 yyyy-MM-dd HH:mm:ss
t 精簡時間格式 HH:mm
T 詳細時間格式 HH:mm:ss

string.format格式結果

String.Format

(C) Currency: . . . . . . . . ($123.00)

(D) Decimal:. . . . . . . . . -123

(E) Scientific: . . . . . . . -1.234500E+002

(F) Fixed point:. . . . . . . -123.45

(G) General:. . . . . . . . . -123

(N) Number: . . . . . . . . . -123.00

(P) Percent:. . . . . . . . . -12,345.00 %

(R) Round-trip: . . . . . . . -123.45

(X) Hexadecimal:. . . . . . . FFFFFF85

(d) Short date: . . . . . . . 6/26/2004

(D) Long date:. . . . . . . . Saturday, June 26, 2004

(t) Short time: . . . . . . . 8:11 PM

(T) Long time:. . . . . . . . 8:11:04 PM

(f) Full date/short time: . . Saturday, June 26, 2004 8:11 PM

(F) Full date/long time:. . . Saturday, June 26, 2004 8:11:04 PM

(g) General date/short time:. 6/26/2004 8:11 PM

(G) General date/long time: . 6/26/2004 8:11:04 PM

(M) Month:. . . . . . . . . . June 26

(R) RFC1123:. . . . . . . . . Sat, 26 Jun 2004 20:11:04 GMT

(s) Sortable: . . . . . . . . 2004-06-26T20:11:04

(u) Universal sortable: . . . 2004-06-26 20:11:04Z (invariant)

(U) Universal sortable: . . . Sunday, June 27, 2004 3:11:04 AM

(Y) Year: . . . . . . . . . . June, 2004

(G) General:. . . . . . . . . Green

(F) Flags:. . . . . . . . . . Green (flags or integer)

(D) Decimal number: . . . . . 3

(X) Hexadecimal:. . . . . . . 00000003

說明:
String.Format
將指定的 String 中的每個格式項替換為相應對象的值的文本等效項。

例子:

int iVisit = 100;
string szName = “Jackfled”;