2008年7月8日 星期二

FrontPage 如何 刪去列尾的空白


可以使用 Frontpage 本身的 尋找及取代的功能

1.尋找目標設定為 :b*$

2.勾選 規則運算式(X)

3.按下[全部取代(A)] 就可以了

你也可以將這個查詢規則存檔,下次再load回來,就可以重複用囉

2008年7月3日 星期四

線上轉換 c# 程式碼成HTML Code

http://www.manoli.net/csharpformat/

SilverLight 2.0 如何使用網頁上的 ActiveX control

請參考
http://pietschsoft.com/post/2008/06/Silverlight-and-JavaScript-Interop-Basics.aspx



using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Browser;

namespace DiggSample
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
}

private void Button_Click(object sender, RoutedEventArgs e)
{

}

private void MyButton_Click(object sender, RoutedEventArgs e)
{
MyButton.Content = "按到了!" + DateTime.Now.ToLongTimeString();
//HtmlPage.Window.Alert(HtmlPage.Document.GetElementById("XCsp").version2);
ScriptObject myScriptObject = (ScriptObject) HtmlPage.Window.Eval("XCsp;");
if (myScriptObject != null)
{
HtmlPage.Window.Alert((string)myScriptObject.GetProperty("Version2"));
double bRdrReady = (double)myScriptObject.Invoke("ConnectReader");
if (bRdrReady == 0)
{
myScriptObject.Invoke("ListReaders");
double totalReaders = (double)myScriptObject.GetProperty("inor");
if (totalReaders > 0)
{
for (int i = 0; i < totalReaders; i++)
{
ReaderList.Items.Add(myScriptObject.GetProperty("caReader"+(i+1).ToString()));
}
}
else
{
HtmlPage.Window.Alert("請安裝讀卡機");
}
}
else
{
HtmlPage.Window.Alert("bRdrReader=" + bRdrReady.ToString());
}
}

}
}
}

2008年6月25日 星期三

縮小 UpdatePanel JavaScript size

使用 asp.net 的 UpdatePanel 時, 需要一併引用 ScriptManager 這個Control ,這個Control 有一個 [ScriptMode] 的屬性,如果要讓 AJAX 的 JavaScript size 變小,可以將ScriptMode的值設成Release,這樣可以將MicrosoftAjax.js 的大小從 324KB 戲劇化的變成 88.1KB

2008年6月18日 星期三

SCARD Error to Value

Table 1 – SCARD Error to Value
Error Code Hexadecimal Value
SCARD_F_INTERNAL_ERROR 80100001
SCARD_E_CANCELLED 80100002
SCARD_E_INVALID_HANDLE 80100003
SCARD_E_INVALID_PARAMETER 80100004
SCARD_E_INVALID_TARGET 80100005
SCARD_E_NO_MEMORY 80100006
SCARD_F_WAITED_TOO_LONG 80100007
SCARD_E_INSUFFICIENT_BUFFER 80100008
SCARD_E_UNKNOWN_READER 80100009
SCARD_E_TIMEOUT 8010000A
SCARD_E_SHARING_VIOLATION 8010000B
SCARD_E_NO_SMARTCARD 8010000C
SCARD_E_UNKNOWN_CARD 8010000D
SCARD_E_CANT_DISPOSE 8010000E
SCARD_E_PROTO_MISMATCH 8010000F
SCARD_E_NOT_READY 80100010
SCARD_E_INVALID_VALUE 80100011
SCARD_E_SYSTEM_CANCELLED 80100012
SCARD_F_COMM_ERROR 80100013
SCARD_F_UNKNOWN_ERROR 80100014
SCARD_E_INVALID_ATR 80100015
SCARD_E_NOT_TRANSACTED 80100016
SCARD_E_READER_UNAVAILABLE 80100017
SCARD_P_SHUTDOWN 80100018
SCARD_E_PCI_TOO_SMALL 80100019
SCARD_E_READER_UNSUPPORTED 8010001A
SCARD_E_DUPLICATE_READER 8010001B
SCARD_E_CARD_UNSUPPORTED 8010001C
SCARD_E_NO_SERVICE 8010001D
SCARD_E_SERVICE_STOPPED 8010001E
SCARD_E_UNEXPECTED 8010001F
SCARD_E_ICC_INSTALLATION 80100020
SCARD_E_ICC_CREATEORDER 80100021
SCARD_E_UNSUPPORTED_FEATURE 80100022
SCARD_E_DIR_NOT_FOUND 80100023
SCARD_E_FILE_NOT_FOUND 80100024
SCARD_E_NO_DIR 80100025
SCARD_E_NO_FILE 80100026
SCARD_E_NO_ACCESS 80100027
SCARD_E_WRITE_TOO_MANY 80100028
SCARD_E_BAD_SEEK 80100029
SCARD_E_INVALID_CHV 8010002A
SCARD_E_UNKNOWN_RES_MNG 8010002B
SCARD_E_NO_SUCH_CERTIFICATE 8010002C
SCARD_E_CERTIFICATE_UNAVAILABLE 8010002D
SCARD_E_NO_READERS_AVAILABLE 8010002E
SCARD_E_COMM_DATA_LOST 8010002F
SCARD_W_UNSUPPORTED_CARD 80100065
SCARD_W_UNRESPONSIVE_CARD 80100066
SCARD_W_UNPOWERED_CARD 80100067
SCARD_W_RESET_CARD 80100068
SCARD_W_REMOVED_CARD 80100069
SCARD_W_SECURITY_VIOLATION 8010006A
SCARD_W_WRONG_CHV 8010006B
SCARD_W_CHV_BLOCKED 8010006C
SCARD_W_EOF 8010006D
SCARD_W_CANCELLED_BY_USER 8010006E

Table 2 - SCARD Error Text Description
Text Description
SCARD_E_BAD_SEEK An error occurred in setting the smart card file object
pointer.
SCARD_E_CANCELLED The action was canceled by a SCardCancel request.
SCARD_E_CANT_DISPOSE The system could not dispose of the media in the
requested manner.
SCARD_E_CARD_UNSUPPORTED The smart card does not meet minimal requirements
for support.
SCARD_E_CERTIFICATE_UNAVAILABLE The requested certificate could not be obtained.
SCARD_E_COMM_DATA_LOST A communications error with the smart card has been
detected.
SCARD_E_DIR_NOT_FOUND The specified directory does not exist in the smart
card.
SCARD_E_DUPLICATE_READER The reader driver didn’t produce a unique reader
name.
SCARD_E_FILE_NOT_FOUND The specified file does not exist in the smart card.
SCARD_E_ICC_CREATEORDER The requested order of object creation is not
supported.
SCARD_E_ICC_INSTALLATION No primary provider can be found for the smart card.
SCARD_E_INSUFFICIENT_BUFFER The data buffer for returned data is too small for the
returned data.
SCARD_E_INVALID_ATR An ATR string obtained from the registry is not a valid
ATR string.
SCARD_E_INVALID_CHV The supplied PIN is incorrect.
SCARD_E_INVALID_HANDLE The supplied handle was invalid.
SCARD_E_INVALID_PARAMETER One or more of the supplied parameters could not be
properly interpreted.
SCARD_E_INVALID_TARGET Registry startup information is missing or invalid.
SCARD_E_INVALID_VALUE One or more of the supplied parameter values could
not be properly interpreted.
SCARD_E_NO_ACCESS Access is denied to the file.
SCARD_E_NO_DIR The supplied path does not represent a smart card
directory.
SCARD_E_NO_FILE The supplied path does not represent a smart card
file.
SCARD_E_NO_MEMORY Not enough memory available to complete this
command.
SCARD_E_NO_READERS_AVAILABLE No smart card reader is available.
SCARD_E_NO_SERVICE The smart card resource manager is not running.
SCARD_E_NO_SMARTCARD The operation requires a smart card but no smart
card is currently in the device.
SCARD_E_NO_SUCH_CERTIFICATE The requested certificate does not exist.,
SCARD_E_NOT_READY The reader or card is not ready to accept commands.
SCARD_E_NOT_TRANSACTED An attempt was made to end a non-existent
transaction.
SCARD_E_PCI_TOO_SMALL The PCI receive buffer was too small.
SCARD_E_PROTO_MISMATCH The requested protocols are incompatible with the
protocol currently in use with the card.
SCARD_E_READER_UNAVAILABLE The specified reader is not currently available for use.
SCARD_E_READER_UNSUPPORTED The reader driver does not meet minimal
requirements for support.
SCARD_E_SERVICE_STOPPED The smart card resource manager has shut down.
SCARD_E_SHARING_VIOLATION The smart card cannot be accessed because of other
outstanding connections.
SCARD_E_SYSTEM_CANCELLED The action was canceled by the system, presumably
to log off or shut down.
SCARD_E_TIMEOUT The user-specified timeout value has expired.
SCARD_E_UNEXPECTED An unexpected card error has occurred.
SCARD_E_UNKNOWN_CARD The specified smart card name is not recognized.
SCARD_E_UNKNOWN_READER The specified reader name is not recognized, reader
maybe disconnected.
SCARD_E_UNKNOWN_RES_MNG An unrecognized error code was returned from a
layered component.
SCARD_E_UNSUPPORTED_FEATURE This smart card does not support the requested
feature.
SCARD_E_WRITE_TOO_MANY An attempt was made to write more data than would
fit in the target object.
SCARD_F_COMM_ERROR An internal communications error has been detected.
SCARD_F_INTERNAL_ERROR An internal consistency check failed.
SCARD_F_UNKNOWN_ERROR An internal error has been detected, but the source is
unknown.
SCARD_F_WAITED_TOO_LONG An internal consistency timer has expired.
SCARD_P_SHUTDOWN The operation has been aborted to allow the server
application to exit.
SCARD_S_SUCCESS No error was encountered.
SCARD_W_CANCELLED_BY_USER The action was cancelled by the user.
SCARD_W_CHV_BLOCKED The card cannot be accessed because the maximum
number of PIN entry attempts has been reached.
SCARD_W_EOF The end of the smart card file has been reached.
SCARD_W_REMOVED_CARD The smart card has been removed, so that further
communication is not possible.
SCARD_W_RESET_CARD The smart card has been reset, so any shared state
information is invalid.
SCARD_W_SECURITY_VIOLATION Access was denied because of a security violation.
SCARD_W_UNPOWERED_CARD Power has been removed from the smart card, so that
further communication is not possible.
SCARD_W_UNRESPONSIVE_CARD The smart card is not responding to a reset.
SCARD_W_UNSUPPORTED_CARD The reader cannot communicate with the card, due to
ATR string configuration conflicts.
SCARD_W_WRONG_CHV The card cannot be accessed because the wrong PIN
was presented.

2008年6月13日 星期五

ASP AJAX 以及中文亂碼解決方案

1.Server端的 ASP 加上

Response.Charset="UTF-8"
Session.CodePage = 65001

2. Client 端的參數如果有中文 要先用 encodeURI ,將中文encode

3.如果要用JSON來傳給Client,可以使用 下面這個網站開發的 JSON class

http://www.webdevbros.net/2007/04/26/generate-json-from-asp-datatypes/

4. 這個網站的作者也有開發 ajaxed - free classic ASP Ajax Library (VBScript)
http://www.webdevbros.net/ajaxed/

2008年5月20日 星期二

在GridView RowDataBound 如何取得不存在GridView 內的欄位資料

實務上我們不會每次都將 DataSource 所有的欄位顯示在 GridView 裡面,但當我們需要的欄位不在GridView 上時,要如何去取得這個欄位的值呢?
答案就是在GridView RowDataBound 這個 event 傳進來的 GridViewRowEventArgs e 這個 Object:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.DataRow)

{



//object refundAmt = DataBinder.Eval(e.Row.DataItem, "RefundAmt");

int refundAmt = ((usp_select_NetATM_logby_TransNoResult1)e.Row.DataItem).RefundAmt;



if (refundAmt > 0)

{

object OrderInfo = e.Row.FindControl("OrderInfo");

if (OrderInfo != null)

{

((Label)OrderInfo).Text += "
";

}

object RefundDetailLink = e.Row.FindControl("RefundDetailLink");

if (RefundDetailLink != null)

{



((HyperLink)RefundDetailLink).NavigateUrl = "javascript:MM_openBrWindow('RefundDetail.aspx?TransNo=" + e.Row.Cells[2].Text.TrimEnd() + "','NewWindow','width=850,height=600,toolbar=no, menubar=no,location=no')";

((HyperLink)RefundDetailLink).Text = "(已執行退費與沖正)";

}
}


e.Row.DataItem 會存放原始DataSource 作 row databound 的資料,所以可以從這裡取的你要的欄位值,要注意的是這個DateItem 的Type 是根據你原來的DataSource而定的,所以你需要事先知道,然後轉型才可以用,偷懶一點的寫法是用DataBinder.Eval 這個Method,由.Net幫你作轉型, 只是這個方法會用到reflection 的機制,遇到大量的資料時,可能會有效能上的問題。

請參考
http://weblogs.asp.net/rajbk/archive/2004/07/20/what-s-the-deal-with-databinder-eval-and-container-dataitem.aspx