2012年4月18日 星期三

关于Google Sitemap的几点认识

关于Google Sitemap,枫林是这样看的:
  1.千万不要笼统的把每个页面都加入到sitemap之中(robots.txt里的除外)
  2.认真查看和修改在线生成的sitemap,相信我们的眼睛
  3.如有sitemap的制作基础或者站点的内容比较少,手动制作是首选
  4.记得定期查看Robot日志,定期更新你的sitemap
  5.对于Google收录已经很好的站(根据站点规模而定),建议不要使用sitemap
  Google Sitemap的制作方法主要包括:手动制作,软件生成,在线生成
  Google sitemaps 生成软件:Google sitemaps Builder .Net V1.5
  自动生成Google地图所需要的.xml文件,很实用!
  运行环境:
  Windows XP, 2000, 2003
  .NET Framework
  没有安装.Net的,请先点这里:微软网站下载.Net Framework 1.1 环境组件
  免费下载Google sitemaps Builder .Net V1.5
  Google Sitemap在线生成的地址:
  Google Sitemap提交地址:

讓中文段落文字確實左右齊行

網頁的中文字常常有右邊無法對齊的情況,
這個時候只要加上下面的CSS就可以乖乖的對齊囉,試試看吧: )


方法很簡單,只要將下面兩行都加到CSS語法裡就可以了
 .mydiv {
 text-align:justify;      /*讓文字齊行*/
 text-justify:distribute; /*讓文字左右齊行*/
 }
 

[軟體] 能同時預覽 IE、Firefox 顯示結果的 CSS 編輯軟體 – CSSVista

對於常撰寫 CSS 的人, 應該多少有使用一些輔助的 CSS 編輯軟體來協助開發的工作吧!? 在 IE 上有「Internet Explorer Developer Toolbar」, 而在 Firefox 上則可透過「Firebug」、「Web Developer」這兩個擴充套件來輔助 CSS 的撰寫。
然而, 不管是使用哪套瀏覽器的輔助工具來撰寫 CSS, 我們仍得等到 CSS 上傳到網站後, 才能看到所編輯的 CSS 在另一個瀏覽器下呈現的樣子。
那麼, 有沒有哪一套工具能夠「同時」又「即時」顯示這兩個最多人使用的瀏覽器在編輯 CSS 後呈現的結果呢!?

CSSVista」就是一個能夠同時支援 IE 及 Firefox 的 CSS 編輯軟體, 你可以即時的在「CSSVista」中預覽這兩種瀏覽器呈現頁面的結果, 如下圖:
如果你討厭分割視窗, 也可以用頁籤的方式切換 IE 和 Firefox 的顯示:
除了支援即時顯示的功能外,「CSSVista」也有 CSS 語法提示的功能, 常開發 CSS 的人不妨試試這套軟體哦!

[.NET]圖片驗證防止灌水機器人

而圖片驗證碼其運作原理相當的簡單,其運作原理則是先隨機產生一組流水號,並寫入在session中,再利用繪圖指令,將流水號繪製到圖片中,因此即便從原始碼或是對著圖片按右鍵時,也完全無法得知此圖片的數字,因此在谷哥中找到個小範例,並稍作了一些修改,現在就來剖析圖片驗證碼的製作吧!

2012年4月17日 星期二

C# asp.net 按年月日自动编号函数

//按年月日编号
protected string getnumber()
        {
            string id = "";
            Random ro = new Random(unchecked((int)DateTime.Now.Ticks));
            id = "XQJH" + DateTime.Now.ToString("yyyyMMdd") + ro.Next(0, 999).ToString("000");
            return id;
        }

GridView 加入自動編號欄位

此範例是示範如何在 GridView 加入一個自動編號的欄位,以標示該資料列的編號。
首先在 GridView 第一欄加入一個 TemplateField,並在 TemplateField 的 ItemTemplate 加入一個 Label (ID=lblNo),asxp 對應程式碼如下。
01<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
02    DataKeyNames="Flag,ID" DataSourceID="SqlDataSource1" EmptyDataText="沒有資料錄可顯示。">
03    <Columns>
04        <asp:TemplateField HeaderText="序號">
05            <ItemTemplate>
06                <asp:Label ID="lblNo" runat="server" Text="Label"></asp:Label>
07            </ItemTemplate>
08            <ItemStyle Wrap="True" />
09            <HeaderStyle Wrap="False" />
10        </asp:TemplateField>
11 
12    </Columns>
13</asp:GridView>

然後在 GridView 的 RowDataBound 事件中,設定每一列的 lblNo 的 Text 屬性值為 RowIndex+1。
因為 RowIndex 起始編號為 0 ,故每列的自動編號為 RowIndex+1。
1Protected Sub GridView1_RowDataBound(ByVal sender As ObjectByVal As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
2    Dim oLabel As Label
3    If e.Row.RowType = DataControlRowType.DataRow Then
4        oLabel = CType(e.Row.Cells(0).FindControl("lblNo"), Label)
5        oLabel.Text = (e.Row.RowIndex + 1).ToString()
6    End If
7End Sub

以上的寫法遇到 GridView 分頁時,都是由 1 開始編號,若需分頁需要接續編號,可改用修改如下。
01Protected Sub GridView1_RowDataBound(ByVal sender As ObjectByVal As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
02    Dim oLabel As Label
03    Dim oGridView As GridView
04 
05    If e.Row.RowType = DataControlRowType.DataRow Then
06        oGridView = CType(sender, GridView)
07        oLabel = CType(e.Row.Cells(0).FindControl("lblNo"), Label)
08        oLabel.Text = (oGridView.PageIndex * oGridView.PageSize) + (e.Row.RowIndex + 1).ToString()
09    End If
10End Sub