MY Note

study it – know it – use it

ASP.NET – Working with Gridview TemplateFields

1. code behide
public string ComputeSeniorityLevel(TimeSpan ts)
{
int numberOfDaysOnTheJob = ts.Days;
if (numberOfDaysOnTheJob >= 0 && numberOfDaysOnTheJob <= 1000) return “Newbie”; else if (numberOfDaysOnTheJob > 1000 && numberOfDaysOnTheJob <= 4000) return “Associate”; else if (numberOfDaysOnTheJob >= 4000 && numberOfDaysOnTheJob <= 8000)
return “One of the Regulars”;
else
return “An Ol’ Fogey”;
}

2. html

<asp:GridView ID="GridView1" Runat="server" 
    DataSourceID="employeeDataSource" AutoGenerateColumns="False"
    BorderWidth="1px" BackColor="White" GridLines="Vertical" 
    CellPadding="4" BorderStyle="None"
    BorderColor="#DEDFDE" ForeColor="Black">
    <FooterStyle BackColor="#CCCC99"></FooterStyle>
    <PagerStyle ForeColor="Black" HorizontalAlign="Right" 
       BackColor="#F7F7DE"></PagerStyle>
    <HeaderStyle ForeColor="White" Font-Bold="True" 
       BackColor="#6B696B"></HeaderStyle>
    <AlternatingRowStyle BackColor="White"></AlternatingRowStyle>
    <Columns>
        <asp:BoundField HeaderText="Last" DataField="LastName" 
           SortExpression="LastName"></asp:BoundField>
        <asp:BoundField HeaderText="First" DataField="FirstName" 
           SortExpression="FirstName"></asp:BoundField>
        <asp:BoundField HeaderText="Hire Date" DataField="HireDate" 
           SortExpression="HireDate"
            DataFormatString="{0:d}"></asp:BoundField>
        <asp:TemplateField HeaderText="Seniority">
            <ItemTemplate>
                <%# ComputeSeniorityLevel(DateTime.Now – 
                     (DateTime)Eval("HireDate")) %>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <SelectedRowStyle ForeColor="White" Font-Bold="True" 
         BackColor="#CE5D5A"></SelectedRowStyle>
    <RowStyle BackColor="#F7F7DE"></RowStyle>
</asp:GridView>

ref: http://msdn.microsoft.com/en-us/library/aa479353(lightweight).aspx

October 20, 2009 Posted by | ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

How to use HtmlEncode with TemplateFields, Data Binding, and a GridView

Label ID="LabelDescription" 
           runat="server" 
           Text='<%# System.Web.HttpUtility.HtmlEncode((string)Eval("Description")) %>'

October 9, 2009 Posted by | ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

Asp.net Permalinks Using URL Rewriting

A Permalink is a permanent link which points to a particular blog entry or forum entry. For example the permalink for this blog article is http://csharp-codesamples.com/2009/03/aspnet-permalinks-using-url-rewriting.

This does not mean that a physical page is created for each blog entry. Instead a single page shows the data for multiple blogs articles dynamically based on some query string.

But all pages in asp.net end with a .aspx extension and if we pass a query string to the page it will look something like Page.aspx?query=test. These links are not very search engine friendly.

This article describes a simple method to create permalinks and improve your asp.net websites search engine optimization using URL rewriting without the use of custom handlers.

ref: http://csharp-codesamples.com/2009/03/aspnet-permalinks-using-url-rewriting/

October 9, 2009 Posted by | ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

FileUpload in UpdatePanel, ASP.NET, like Gmail

http://geekswithblogs.net/ranganh/archive/2009/10/01/fileupload-in-updatepanel-asp.net-like-gmail.aspx

October 7, 2009 Posted by | ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

ASP.NET Dynamic Data Preview #7: How Do I Use a DynamicControl in ListView and DetailsView Controls?

This video compares the same application written twice, once with Dynamic Data and once without. In the process, you add DynamicControl objects to ListView and DetailsView controls.

http://msdn.microsoft.com/en-us/library/system.web.dynamicdata.dynamiccontrol.aspx

http://www.bestechvideos.com/2008/06/02/asp-net-dynamic-data-how-do-i-use-a-dynamiccontrol-in-listview-and-detailsview-controls

September 30, 2009 Posted by | .NET, .NET 2.0, ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

Sorting Generic List

//Sorting List<> case Item is ListItem
//==============================================
List<ListItem> tempList = new List<ListItem>();

tempList.Insert(0, new ListItem("------------- Vehicle Reports 8"));
tempList.Insert(0, new ListItem("------------- Vehicle Reports 2"));
tempList.Insert(0, new ListItem("------------- Vehicle Reports 4"));

// sort asc
tempList.Sort(delegate(ListItem p1, ListItem p2) {
                    return p1.Text.CompareTo(p2.Text);                    
                });
// sort desc
tempList.Sort(delegate(ListItem p1, ListItem p2) {
                    return p2.Text.CompareTo(p1.Text);                    
                });

//Sorting List<> case Item is Object Class
//===============================================
//Apply to sorting in GridView
//===============================================
SortData(e.SortExpression, NewSortDirection, ref listMsgTicker);
//===============================================

#region method for sorting

    private void SortData(string _expression, SortDirection _direction,
            ref List<MsgTicker> data)
    {
        //sort asc ==
        if (_direction == SortDirection.Ascending)
            data.Sort(delegate(MsgTicker a, MsgTicker b)
            {
                switch (_expression)
                {
                    case "MsgHeader": return a.MsgHeader.CompareTo(b.MsgHeader);
                    case "CreatedDate": return a.CreatedDate.CompareTo(b.CreatedDate);
                    case "ModifiedDate": return a.ModifiedDate.CompareTo(b.ModifiedDate);
                    default:
                        throw new NotImplementedException("Type of property not implemented yet");
                }
            });

        //sort desc ==
        if (_direction == SortDirection.Descending)
            data.Sort(delegate(MsgTicker a, MsgTicker b)
            {
                switch (_expression)
                {
                    case "MsgHeader": return b.MsgHeader.CompareTo(a.MsgHeader);
                    case "CreatedDate": return b.CreatedDate.CompareTo(a.CreatedDate);
                    case "ModifiedDate": return b.ModifiedDate.CompareTo(a.ModifiedDate);
                    default:
                        throw new NotImplementedException("Type of property not implemented yet");
                }
            });

        //return data;
    }

    #endregion
ref: http://dotnetslackers.com/Community/blogs/simoneb/archive/2007/06/20/How-to-sort-a-generic-List_3C00_T_3E00_.aspx

September 16, 2009 Posted by | .NET, .NET 2.0, AJAX, ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

ThaiBuddhistCalendar and DateTime Convertion

//date time utc
        DateTime _utc = DateTime.UtcNow;

        // utc --> thai
        ThaiBuddhistCalendar tbc = new ThaiBuddhistCalendar();

        int thaiDay = tbc.GetDayOfMonth(_utc);
        int thaiMonth = tbc.GetMonth(_utc);
        int thaiYearr = tbc.GetYear(_utc);

        string thaiDaate = thaiDay.ToString("00") + "/" + thaiMonth.ToString("00") + "/" + thaiYearr.ToString("0000");

        // thai --> utc
        DateTime _do, _UtcTime;
        DateTime.TryParseExact(thaiDaate, "dd/MM/yyyy", new CultureInfo("th-TH"), DateTimeStyles.None, out _do);
        _UtcTime = _do.ToUniversalTime();
ref: http://msdn.microsoft.com/en-us/library/system.globalization.thaibuddhistcalendar.getera.aspx

September 8, 2009 Posted by | .NET, .NET 2.0, ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

Tips to optimize design-time build performance for Web Sites in Visual Studio

There have been a number of posts with tips to improve build performance within Visual Studio 2005.  I’ve consolidate these posts and other tips into a single post of techniques for common problems.
ref: http://weblogs.asp.net/bradleyb/archive/2005/12/06/432441.aspx

September 5, 2009 Posted by | .NET, .NET 2.0, ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

Asp.Net Initialize Culture

1.

protected override void InitializeCulture()
    {
        string _culture = “th-TH“;
        Page.Culture = _culture;
        Page.UICulture = _culture;
        Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(_culture);
        Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(_culture);
    }

2.

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Template.aspx.cs”
Inherits=”Template” culture=”auto” uiculture=”auto” %>

September 5, 2009 Posted by | ASP.NET, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

LINQ to SQL Debug Visualizer

 Probably the biggest programming model improvement being made in .NET 3.5 is the work being done to make querying data a first class programming concept.  We call this overall querying programming model “LINQ”, which stands for .NET Language Integrated Query.  Developers can use LINQ with any data source, and built-in libraries are included with .NET 3.5 that enable LINQ support against Objects, XML, and Databases.

Earlier this summer I started writing a multi-part blog series that discusses the built-in LINQ to SQL provider in .NET 3.5.  LINQ to SQL is an ORM (object relational mapping) implementation that allows you to model a relational database using .NET classes.  You can then query the database using LINQ, as well as update/insert/delete data from it.  LINQ to SQL fully supports transactions, views, and stored procedures.  It also provides an easy way to integrate data validation and business logic rules into your data model.

You can learn more about LINQ to SQL by reading my posts below (more will be coming soon):

Ref: http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx

September 5, 2009 Posted by | .NET 2.0, ASP.NET 3.0, ASP.NET 3.5 | Leave a Comment

Follow

Get every new post delivered to your Inbox.