<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>自製小元件</title><link>http://blog.blueshop.com.tw/dplayerd/category/2008.aspx</link><description>自製小元件</description><managingEditor>毛豆</managingEditor><dc:language>zh-TW</dc:language><generator>.Text Version 0.95.2004.101</generator><item><dc:creator>毛豆</dc:creator><title>簡易版進度列(非動態進度列)</title><link>http://blog.blueshop.com.tw/dplayerd/archive/2007/06/10/51338.aspx</link><pubDate>Sun, 10 Jun 2007 22:05:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/dplayerd/archive/2007/06/10/51338.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/dplayerd/comments/51338.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/dplayerd/archive/2007/06/10/51338.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/dplayerd/comments/commentRss/51338.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/dplayerd/services/trackbacks/51338.aspx</trackback:ping><description>&lt;P&gt;這個元件用以顯示進度百分比的Web使用者控制項，可以放在工作報告等處，目前無法動態顯示，但如果有空的人可以試著用JavaScript改寫。&lt;/P&gt;
&lt;P&gt;裡面我放了四個對外開放的屬性&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Percent：表示百分比 
&lt;LI&gt;BarStyle：前景Div的css內容 
&lt;UL&gt;
&lt;LI&gt;BarStyle="border:1px solid black; color:red;"&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;GroundStyle：後景Div的css內容 
&lt;UL&gt;
&lt;LI&gt;GroundStyle="background-color:blue;"&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;ShowText：顯示於前景Div的字串，可在字串中加入%符號，程式會把%符號換成進度。 
&lt;UL&gt;
&lt;LI&gt;如輸入【第一選項：%】，則顯示時會變成【第一選項：90%】&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=SubTitle&gt;uc_ProgressBar.ascx&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=xml name=code rows=6 cols=50&gt;&amp;lt;%@ Control Language="vb" AutoEventWireup="false" Codebehind="uc_ProgressBar.ascx.vb" Inherits="Somee.uc_ProgressBar" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %&amp;gt;
&amp;lt;div id="ground" class="ground" runat="server"&amp;gt;
	&amp;lt;div id="bar" class="bar" runat="server"&amp;gt;&amp;lt;asp:Literal id="ltl_Text" runat="server" /&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P class=SubTitle&gt;uc_ProgressBar.ascx.vb&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=vb name=code rows=6 cols=50&gt;    Dim per As Double
    Dim txt As String


    Public Property Percent() As Double     '設定長度的百分比
        Get
            Return per
        End Get
        Set(ByVal Value As Double)
            per = Value
        End Set
    End Property


    Public Property ShowText() As String    '設定用來顯示的字
        Get
            Return txt
        End Get
        Set(ByVal Value As String)
            txt = Value
        End Set
    End Property


    Public Property GroundStyle() As String '設定背景bar的造型
        Get
            Return Me.ground.Attributes("Style")
        End Get
        Set(ByVal Value As String)
            Me.ground.Attributes("Style") = Value
        End Set
    End Property


    Public Property BarStyle() As String    '設定前景bar的造型
        Get
            Return Me.bar.Attributes("Style")
        End Get
        Set(ByVal Value As String)
            Me.bar.Attributes("Style") = Value
        End Set
    End Property


    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在這裡放置使用者程式碼以初始化網頁


        Me.ground.Attributes.CssStyle.Add("WIDTH", "100%")
        Me.bar.Attributes.CssStyle.Add("WIDTH", Percent &amp;amp; "%")

        If txt = "" Then
            Me.ltl_Text.Text = Percent &amp;amp; "%"
        Else
            Me.ltl_Text.Text = ShowText.Replace("%", Percent &amp;amp; "%")
        End If
    End Sub&lt;/TEXTAREA&gt;&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/dplayerd/aggbug/51338.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>毛豆</dc:creator><title>簡易版上傳程式</title><link>http://blog.blueshop.com.tw/dplayerd/archive/2007/04/18/50606.aspx</link><pubDate>Wed, 18 Apr 2007 01:22:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/dplayerd/archive/2007/04/18/50606.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/dplayerd/comments/50606.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/dplayerd/archive/2007/04/18/50606.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/dplayerd/comments/commentRss/50606.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/dplayerd/services/trackbacks/50606.aspx</trackback:ping><description>&lt;P&gt;突然想到，blog或許可以加個上傳檔案功能，以便日後增加圖片/其它檔案上傳的能力。經過搜尋，在藍色小舖的下載區找到很棒【丁書記簡易上傳程式】，不過很可惜的只找到ASP版本。&lt;/P&gt;
&lt;P&gt;後來想想，既然上傳檔案是很早以前就有的需求，ASP.net一定有人寫出來了，最後在討論區中發現了Allen的介紹，是個簡易版檔案上傳程式（c#），我經過某程式轉成了（VB.net）。&lt;/P&gt;
&lt;P&gt;先貼出超連結：&lt;A href="http://www.allenkuo.com/forum/viewthread.asp?mid=946&amp;amp;"&gt;Allen的介紹&lt;/A&gt;，(以下介紹已確定可在.net framework&amp;nbsp;1.1使用)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=5&gt;注意&lt;/FONT&gt;&lt;/STRONG&gt;：在Allen版本中，搜尋檔案的Upload.html和真正用來上傳的Upload.aspx是不同檔案。html要把form加上【enctype="multipart/form-data"】屬性，Aspx頁中要引入【using System.IO;】。&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=xml name=code rows=6 cols=50&gt;&amp;lt;form name="frm" method="post" action="upload.aspx" enctype="multipart/form-data" ID="Form1"&amp;gt;
&amp;lt;input type="file" size="35" ID="UploadFile" NAME="UploadFile"&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type="submit"&amp;gt;
&amp;lt;/form&amp;gt;&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=c# name=code rows=6 cols=50&gt;using System.IO;
private void Page_Load(object sender, System.EventArgs e)
{
    string destDir = Server.MapPath("myimages");
    try
    {
        //save file
        string fileName = Path.GetFileName(Request.Files[0].FileName);
        Request.Files[0].SaveAs(Path.Combine(destDir,fileName));
        
        //refresh page
        Response.Write("檔案已存檔");
    }
    catch(Exception exc)
    {
        Response.Write(exc.Message);
    }

}&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;再來我把它改寫VB.net版（我直接把Imports System.IO直接寫在語法裡，而不是引入）。&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=vb name=code rows=6 cols=50&gt;    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在這裡放置使用者程式碼以初始化網頁

        Dim targetDir As String = "MyImages"
        Dim destDir As String = Server.MapPath(targetDir)
        Dim fileName As String = System.IO.Path.GetFileName(Request.Files(0).FileName)


        If System.IO.File.Exists(System.IO.Path.Combine(destDir, fileName)) Then
            Me.Label1.Text = "檔案已存在"
        Else
            Try
                Request.Files(0).SaveAs(System.IO.Path.Combine(destDir, fileName))
                Me.Label1.Text = "檔案已存檔至" &amp;amp; targetDir &amp;amp; "資料夾中"
            Catch ex As Exception
                Me.Label1.Text = ex.Message
            End Try
        End If

    End Sub&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;好了，我們得到了個最簡易版本的上傳程式，目前測試過許多檔案（jpg、gif、rar、zip、txt、png、doc、xml等，在網頁上常看到的幾乎都測了），好像沒有限制。&lt;/P&gt;
&lt;P&gt;即使它這麼的優，為什麼還叫它簡易版呢，因為這版程式檔案大小這受限於.net天生限制的4mb，後來也在藍色小舖找到解法了，該頁&lt;A href="http://www.blueshop.com.tw/board/show.asp?subcde=BRD20020916134744G5M&amp;amp;fumcde=FUM20041006161839LRJ"&gt;超連結&lt;/A&gt;。&lt;/P&gt;
&lt;P&gt;它的做法是在web.config中加入一行限制（檔案大小請自行換算，小算盤會用吧）：&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=xml name=code rows=6 cols=50&gt;&amp;lt;configuration&amp;gt;
  &amp;lt;system.web&amp;gt;
  
  &amp;lt;httpRuntime maxRequestLength="102400" /&amp;gt;
　&amp;lt;!--自已加的，設定上傳檔案大小（1&amp;nbsp;Mb&amp;nbsp;=&amp;nbsp;1024&amp;nbsp;bytes）--&amp;gt;

  &amp;lt;/system.web&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;又解決一個問題了，但接下來的難題還有不少呢。像以往寄電子郵件常遇到檔案傳輸太久，就會遇上伺服器TimeOut，這邊還沒查，印象中是利用多執行緒來解，待查中。另外其實如果能像Google一樣，加入Ajax來進行非同步上傳還有批次上傳，我想一定更加方便。&lt;/P&gt;
&lt;P&gt;它最後的應用應該就是圖片上傳並加以縮圖了，已經有範例，看能不能趕在沒時間前搞定它。我想預定做法應該是利用JavaScript先縮好圖再上傳，避免伺服器做太多事情，伺服器資源可是很珍貴的呀！&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/dplayerd/aggbug/50606.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>毛豆</dc:creator><title>自製月曆</title><link>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/24/50198.aspx</link><pubDate>Sat, 24 Mar 2007 13:45:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/24/50198.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/dplayerd/comments/50198.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/24/50198.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/dplayerd/comments/commentRss/50198.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/dplayerd/services/trackbacks/50198.aspx</trackback:ping><description>&lt;P&gt;很簡單的自製月曆程式，以後會在開發Blog時用在依日期顯示區域(我在Html中放的table叫做cal)&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_Calendar1.png"&gt;&lt;/P&gt;
&lt;P&gt;接著是執行結果(我有在css檔裡面加一些框線)&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_Calendar2.png"&gt;&lt;/P&gt;
&lt;P&gt;之後就在開發blog時，依照DataSet中的內容，替日期中加入圖片超連結&lt;BR&gt;雖然可能沒有Calendar控制項使用起來方便，但對我的開發這樣就夠了，也比較輕量一點&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;程式碼：&lt;/P&gt;
&lt;P&gt;Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;BR&gt;&amp;nbsp;'在這裡放置使用者程式碼以初始化網頁&lt;/P&gt;
&lt;P&gt;&amp;nbsp;CalFill(2007, 3, Me.Cal)&lt;BR&gt;&amp;nbsp;Me.Cal.CellSpacing = 0&lt;BR&gt;&amp;nbsp;Me.Cal.CellPadding = 1&lt;/P&gt;
&lt;P&gt;End Sub&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Public Sub CalFill(ByVal Year As Integer, ByVal Month As Integer, ByVal tb As Table)&amp;nbsp;&amp;nbsp;&amp;nbsp; '傳入值有年、月、和表格&lt;BR&gt;&amp;nbsp;Dim i As Integer&lt;BR&gt;&amp;nbsp;Dim tr As New TableRow&amp;nbsp; '因為必須產生很多個相同的tr和td，所以必須new出來&lt;BR&gt;&amp;nbsp;Dim th As New TableCell&lt;BR&gt;&amp;nbsp;Dim td As TableCell&lt;BR&gt;&amp;nbsp;Dim d As New Date(Year, Month, 1)&amp;nbsp;&amp;nbsp; '設定日期為幾年幾月的一號&lt;/P&gt;
&lt;P&gt;&amp;nbsp;tr = New TableRow&lt;/P&gt;
&lt;P&gt;&amp;nbsp;For i = 1 To d.DayOfWeek&amp;nbsp;&amp;nbsp;&amp;nbsp; '上個月的日期以空白表示&lt;BR&gt;&amp;nbsp;&amp;nbsp;td = New TableCell&lt;BR&gt;&amp;nbsp;&amp;nbsp;td.Text = " "&lt;BR&gt;&amp;nbsp;&amp;nbsp;tr.Controls.Add(td)&lt;BR&gt;&amp;nbsp;Next&lt;/P&gt;
&lt;P&gt;&amp;nbsp;For i = 1 + d.DayOfWeek To d.DaysInMonth(Year, Month) + d.DayOfWeek '加入這個月的日期&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;td = New TableCell&lt;BR&gt;&amp;nbsp;&amp;nbsp;td.Text = (i - d.DayOfWeek).ToString&lt;BR&gt;&amp;nbsp;&amp;nbsp;tr.Controls.Add(td)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;If i Mod 7 = 0 Then '每七天分一次列&lt;BR&gt;&amp;nbsp;&amp;nbsp;tb.Controls.Add(tr)&lt;BR&gt;&amp;nbsp;&amp;nbsp;tr = New TableRow&lt;BR&gt;&amp;nbsp;&amp;nbsp;End If&lt;BR&gt;&amp;nbsp;Next&lt;/P&gt;
&lt;P&gt;&amp;nbsp;tb.Controls.Add(tr)&lt;BR&gt;End Sub&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/dplayerd/aggbug/50198.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>