Popular Posts
Enable SSL connection for Jsoup import org.jsoup.Connection; import org.jsoup.Jsoup; import javax.net.ssl.*; import java.io.IOException; import java.security.KeyManagement... Word break tag : <wbr/> (HTML5) The  HTML  <wbr>  tag  is  used  defines  a  potential  line  break  point  if  needed.  This  stands  for  Word  BReak. This  is  u... Build an OpenVPN server on android device Preparation An android device, in this case, Sony xperia Z is used Root permission required Linux Deploy for deploy i...
Stats
A good url validate regular expression
^(?#Protocol)(?:(?:ht|f)tp(?:s?)\:\/\/|~\/|\/)?(?#Username:Password)(?:\w+:\w+@)?(?#Subdomains)(?:(?:[-\w]+\.)+(?#TopLevel Domains)(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))(?#Port)(?::[\d]{1,5})?(?#Directories)(?:(?:(?:\/(?:[-\w~!$+|.,=]|%[a-f\d]{2})+)+|\/)+|\?|#)?(?#Query)(?:(?:\?(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)(?:&(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*(?#Anchor)(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)?$
GridView paging style design
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
    ...... >
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="姓名" SortExpression="Name" />
        <asp:BoundField DataField="OrgID" HeaderText="單位編號" SortExpression="OrgID" />
        .............
    </Columns>
    <PagerTemplate>
        <div style="text-align:center;">
            <asp:LinkButton ID="btnFirstPage" runat="server" CommandArgument="First" CommandName="Page" Text="First"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex > 0 %>' />
            <asp:LinkButton ID="btnPrevPage" runat="server" CommandArgument="Prev" CommandName="Page" Text="Pre"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex > 0 %>' />
                
            <asp:LinkButton ID="btnP4" runat="server"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex-3 > 0 %>'
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex-3 %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex-3 %>' />
            <asp:LinkButton ID="btnP3" runat="server"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex-2 > 0 %>'
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex-2 %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex-2 %>' />
            <asp:LinkButton ID="btnP2" runat="server"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex-1 > 0 %>'
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex-1 %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex-1 %>' />
            <asp:LinkButton ID="btnP1" runat="server"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex > 0 %>'
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex %>' />
                
            <asp:LinkButton ID="btnCurrent" runat="server"
                Enabled="false"
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex+1 %>' />
                
            <asp:LinkButton ID="btnN1" runat="server"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex+1 < (Container.NamingContainer as GridView).PageCount %>'
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex+2 %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex+2 %>' />
            <asp:LinkButton ID="btnN2" runat="server"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex+2 < (Container.NamingContainer as GridView).PageCount %>'
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex+3 %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex+3 %>' />
            <asp:LinkButton ID="btnN3" runat="server"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex+3 < (Container.NamingContainer as GridView).PageCount %>'
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex+4 %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex+4 %>' />
            <asp:LinkButton ID="btnN4" runat="server"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex+4 < (Container.NamingContainer as GridView).PageCount %>'
                CommandArgument='<%# (Container.NamingContainer as GridView).PageIndex+5 %>'
                CommandName="Page" Text='<%# (Container.NamingContainer as GridView).PageIndex+5 %>' />
                
            <asp:LinkButton ID="btnNextPage" runat="server" CommandArgument="Next" CommandName="Page" Text="Next"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex+1 < (Container.NamingContainer as GridView).PageCount %>' />
            <asp:LinkButton ID="btnLastPage" runat="server" CommandArgument="Last" CommandName="Page" Text="Last"
                Visible='<%# (Container.NamingContainer as GridView).PageIndex+1 < (Container.NamingContainer as GridView).PageCount %>' />
                
            ,共<%# (Container.NamingContainer as GridView).PageCount %>頁,
            到第<asp:TextBox ID="tbPageIndex" runat="server" Text='<%# (Container.NamingContainer as GridView).PageIndex+1 %>' Columns="3" />
            <asp:LinkButton ID="btnGotoPage" runat="server" Text="Go" OnClick="GotoPage_Click"
                OnClientClick="__doPostBack($(this).attr('id').split('_').join('$'),$(this).parent().find('input:text').val());return false;" />
        </div>
    </PagerTemplate>
</asp:GridView>
protected void GotoPage_Click(object sender, EventArgs e)
{
    GridView gv = (sender as LinkButton).NamingContainer.NamingContainer as GridView;

    try
    {
        // __doPostBack 參數
        int p = int.Parse(Request.Form["__EVENTARGUMENT"]);

        if (p < 1 || p > gv.PageCount)
        {
            ClientScript.RegisterClientScriptBlock(
                GetType(),
                "f",
                "alert('錯誤頁碼!');",
                true
            );
        }
        else
        {
            gv.PageIndex = p - 1;
            gv.DataBind();
        }
    }
    catch
    {
        ClientScript.RegisterClientScriptBlock(
            GetType(),
            "f",
            "alert('錯誤頁碼!');",
            true
        );
    }
}
IDES 4.7 Installation
  1. 電腦名稱不能使用特殊名稱(bin/etc/var ...)
  2. 網路卡-> File and Printer Sharing for Microsoft Networks ->網路應用程式的資料輸送量最大化
  3. 安裝jdk1.4 (不升級)
  4. 設置JAVA_HOME
  5. 調高虛擬記憶體
  6. 安裝oracle
  7. 清空暫存資料夾 (%USERPROFILE%\Local Settings\Temp, %SystemRoot%\TEMP)
  8. 時間修改為2029年避免過期, 過晚的時間會發生無法安裝
  9. 載入export data時, 會檢查exportXX的data資料夾, 將exportXX以網路磁碟機的方式顯示在根目錄
Clipboard Usage
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;

public class ClipboardUsage implements ClipboardOwner {

    public void setClipboardContents(String aString) {
        StringSelection stringSelection = new StringSelection(aString);
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        clipboard.setContents(stringSelection, this);
    }

    public String getClipboardContents() {
        String result = "";
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        // odd: the Object param of getContents is not currently used
        Transferable contents = clipboard.getContents(null);
        boolean hasTransferableText = (contents != null) && contents.isDataFlavorSupported(DataFlavor.stringFlavor);
        if (hasTransferableText) {
            try {
                result = (String) contents.getTransferData(DataFlavor.stringFlavor);
            } catch (UnsupportedFlavorException ex) {
                // highly unlikely since we are using a standard DataFlavor
                System.out.println(ex);
                ex.printStackTrace();
            } catch (IOException ex) {
                System.out.println(ex);
                ex.printStackTrace();
            }
        }
        return result;
    }

    @Override
    public void lostOwnership(Clipboard clipboard, Transferable contents) {

    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        ClipboardUsage cu = new ClipboardUsage();
        System.out.printf("Clipboard : %s%n", cu.getClipboardContents());
        cu.setClipboardContents("clipboard test.");
        System.out.printf("Clipboard : %s%n", cu.getClipboardContents());
    }

}