星期三, 4月 28, 2010

[Asp.Net] 一行搞定DataTable Distinct

今天剛好用到,沒有用新的linq來做。
DataTable dt = ((DataTable)tCourse).DefaultView.ToTable(true,
                new string[] {
                    "CourseID",
                    "CourseName",
                    "CourseClass",
                    "CourseStart",
                    "CourseEnd",
                    "CourseStatus" }); 

星期二, 4月 27, 2010

[Asp.Net] 防止頁面重覆刷新執行的方法

#region check page refresh

    /// <summary>
    /// 處裡 PreRender 事件,在網頁初次載入時設置戳記,
    /// 且每次載入執行時會把該戳記存放到 HiddenField 裡。 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void Page_PreRender(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.SetActionStamp();
        }

        if (Session["actionStamp"] != null)
            this.ClientScript.RegisterHiddenField("actionStamp", Session["actionStamp"].ToString());
    }

    /// <summary>
    /// 設置戳記
    /// </summary>
    private void SetActionStamp()
    {
        this.Session["actionStamp"] = Server.UrlEncode(DateTime.Now.ToString("yyyy-MM-dd.hh-mm-ss.FF"));
    }

    /// <summary>
    /// 取得值,指出網頁是否經由重新整理動作回傳 (PostBack)
    /// </summary>
    protected bool IsRefresh
    {
        get
        {
            if (HttpContext.Current.Request["actionStamp"] as string == 
                Session["actionStamp"] as string)
            {
                this.SetActionStamp();
                return false;
            }

            return true;
        }
    }

    #endregion

星期二, 4月 13, 2010

Google map Click

function SearchMap(address)
{
var marker
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_"));
var geocoder = new GClientGeocoder();


map.setUIToDefault();
geocoder.getLatLng(address, function(point) {
if (!point)
{
alert('Google Maps 找不到該地址,無法顯示地圖!'); //如果Google Maps無法顯示該地址的警示文字
}
else
{

$(".latlng_").text(point.lat()+","+point.lng());

map.setCenter(point, 13);
marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address);
}
});
GEvent.addListener(map,"click", function(overlay,latlng) {
map.removeOverlay(marker);
if (overlay) {
// ignore if we click on the info window
return;
}
var tileCoordinate = new GPoint();
var tilePoint = new GPoint();
var currentProjection = G_NORMAL_MAP.getProjection();

var geoPoint0= new GLatLng(latlng.lat(),latlng.lng());


var myLatLng = new GLatLng(latlng.lat(), latlng.lng());

//移動地圖中心點
map.panTo( myLatLng );
//設定標註座標
marker.setLatLng( myLatLng );

var myGeocoder = new GClientGeocoder();
myGeocoder.getLocations(myLatLng, function(addresses) {
if(addresses.Status.code != 200) {
//alert("此座標沒有找到對應的地址 " + myLatLng.toUrlValue());
alert("此座標沒有找到對應的地址,請重新點選其他地方!");
}
else
{
var result = addresses.Placemark[0];
marker= new GMarker(geoPoint0, { title:latlng.lat()+","+ latlng.lng()});
map.addOverlay(marker);
marker.openInfoWindowHtml( result.address );
$(".latlng_").text(latlng.lat()+","+latlng.lng());
}
});
});


}
}

星期一, 4月 12, 2010

Lazarus(1999) 情緒字詞分類

Lazarus(1999)則將十七種常見的情緒辭彙分成五大類,結果如下:

1.不愉快的情緒(nasty emotion)-氣憤、羨慕、嫉妒;

2.存在的情緒(existential emotion)-焦慮、驚嚇、自責、羞愧;

3.被不利生存條件所引發的情緒(emotion provoked by unfavourable)-安心、希望、悲傷、沮喪;

4.移情作用的情緒(empathic emotion)-感激、同情;

5.被有利生存條件所引發的情緒(emotion provoked by favourable life condition)-快樂、高興、驕傲、愛。

星期三, 4月 07, 2010

[Jquery API] Disabled and Readonly Input

常常會到用input的disabled與readonly的控制。

$("#control").toggle( 

function () 
{ 
    $('#target').attr("disabled", true); 
}, 

function () 
{ 
    $('#target').removeAttr("disabled"); 
}

);


jQuery: Disabled and ReadOnly Inputs

Jquery 取得 iframe 內的Dom物件

在取iframe裡面的值時要注意,
而注意iframe頁面的元素是否載入完成,
否則會導致設定iframe值的失敗。

var iframe = document.getElementById("boxyFrame");
$(iframe).load(function(){
iframe.contentDocument.getElementById("hiddenUID").value = uid;//dom api
});
Reference:
[jQuery]獲取iframe內的DOM物件

javascript html encoder , decoder

<script type="text/javascript">
function htmlEncode (str){
var div = document.createElement("div");
var text = document.createTextNode(str);
div.appendChild(text);
return div.innerHTML;
}

function htmlDecode (str){
var div = document.createElement("div");
div.innerHTML = str;
return div.innerText;
}
</script>

星期二, 4月 06, 2010

Jquery MonthPicker

最近有個需求需要使用一個只能選擇月份的選擇器,
從google大神找到有相同需求的人,利用原本的Jquery UI date picker就可以很快實現。
以下是詳細解法:


<script type="text/javascript">
$(function() {
    $('.date-picker').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy',
        onClose: function(dateText, inst) {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        }
    });
});
</script>


修改原本date picker的css讓calendar不要顯示:
.ui-datepicker-calendar {
    display: none;
    }
 
頁面配置:
<label for="startDate">Date :</label>
<input name="startDate" id="startDate" class="date-picker" />
 
Reference:jquery date picker to show month year only 
 

星期一, 4月 05, 2010

asp.net chart controls

Reference: 介紹好用元件:Microsoft Chart Controls for .NET 3.5  By Will

Microsoft Chart Controls for Microsoft .NET Framework 3.5
包含 ASP.NET 和 Windows Form 圖表控制項的組件。
Microsoft Chart Controls for Microsoft .NET Framework 3.5 語言套件 (繁體中文)
Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008
安裝後可以方便的在 VS2008 SP1 中拖曳控制項與使用 IntelliSense (含 ASP.NET 與 WinForm )
Microsoft Chart Controls for .NET Framework Documentation
此文件包括安裝說明與完整的 API 說明文件。
Samples Environment for Microsoft Chart Controls
這裡提供超過 200 個範例,讓你快速上手如何開發!
Windows Forms/ASP.NET Chart Control 論壇
各種與此控制項相關的討論都可以在此進行
P.S. 最後提醒,請務必安裝至 .NET 3.5 SP1 才能正確使用該元件。

 

[Asp.Net] 實作下載檔案連結與檔名編輯問題解決

 下載檔案連結實作如下:
gfa = new Module_Command.GetFileAttach(this.supportFileID, "2");
                            Attach = gfa.Execute();
                            gfa.UnExecute();
                            if (Attach != null)
                            {
                                dtOneFile = (DataTable)Attach;
                                filePath = "course/"
                                + dtOneFile.Rows[0]["CourseID"].ToString()
                                +"/"
                                + dtOneFile.Rows[0]["HomeWorkID"].ToString()
                                +"/attachment/"
                                + dtOneFile.Rows[0]["SupportFileName"].ToString();

                                filename = dtOneFile.Rows[0]["SupportFileName"].ToString();
                                filename = filename.Replace(" ", "%20");


                                //if (context.Request.Browser.Browser == "IE")
                                userAgent = context.Request.Headers.Get("User-Agent");
                                if (userAgent.Contains("MSIE 7.0"))
                                    filename = context.Server.UrlPathEncode(dtOneFile.Rows[0]["SupportFileName"].ToString());


                                context.Response.ContentType = "application/download";
                                context.Response.AddHeader("Content-Disposition", "attachment;filename=" + filename + ";");


Reference: 
ASP.NET 如何設定強制下載檔案並正確處理中文檔名的問題  
【茶包射手專欄】Cassini's Response Header Encoding

 

其他你感興趣的文章

Related Posts with Thumbnails