Thursday, February 2, 2012

Lesson03: ASP.NET Control And Coding

Exercise: tạo web Application tên là MoreServerControl_Lesson03
  • Exercise 1: Hiểu thêm về Control của ASP.NET
    • Thêm mới 1 trang login.aspx
    • Thêm Literal text là Server Authentication
    • Thêm 2 radio button
      • Radio button đầu tiên
        • Name là rdoWindows
        • Text là Windows authentication
        • Mặc định(default) là Checked=true
      • Radio button thứ hai
        • Name là rdoSQLServer
        • Text là SQL Server authentication
      • Chỉnh thuộc tính GroupName cho cả 2 radio button là authentication
    • Thêm literal và Text là Username
    • Thêm TextBox tên là txtUserName
    • Thêm literal và Text là Password
    • Thêm TextBox tên là Password

   
  • Exercise 2: Hiểu về cách lấy giá trị từ control radio button và TextBox
    • Tiếp tục với login.aspx
    • Thêm literal tên literalResult
    • Thêm button tên btnLogin
                   
                    
    • Khai báo code trong sự kiện click của btnLogin để hiển thị phần chọn của authentication và lấy giá trị của user name và password lên literalResult
protected void btnLogin_Click(object sender, EventArgs e)
    {
        if (rdoSQLServer.Checked)
        {
            literalResult.Text = txtUserName.Text + " _ " + txtPassword.Text;
        }
 }
    • Nhấn F5 nhập username và password sau đó click btnLogin
  • Exercise 3: Xem lại ClassLirary Project cho website
    • Mở Visual St
      udio
    • Thêm ClassLirary Project và tên là CommonProviders đặt trong cùng folder MoreServerControl_Lesson03
    • Đổi Class1 thành CommonProvider
    • Định nghĩa method ReverseString(string text) nhận vào 1 chuỗi và trả ra chuỗi reverse(ABC->CBA)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommonProviders
{
    public class CommonProvider
    {
        public string ReverseString(string text)
        {
            char[] cArray = text.ToCharArray();
            string reverse = String.Empty;
            for (int i = cArray.Length - 1; i > -1; i--)
            {
                reverse += cArray[i];
            }
            return reverse;
        }
    }
}

    • Build ClassLirary Project thành assembly(.dll) ở chế độ release
    • Exercise 3: Xem lại ClassLirary Project cho website
      • Mở Visual St
        udio
      • Thêm ClassLirary Project và tên là CommonProviders đặt trong cùng folder MoreServerControl_Lesson03
      • Đổi Class1 thành CommonProvider
      • Định nghĩa method ReverseString(string text) nhận vào 1 chuỗi và trả ra chuỗi reverse(ABC->CBA)
  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace CommonProviders
    {
        public class CommonProvider
        {
            public string ReverseString(string text)
            {
                char[] cArray = text.ToCharArray();
                string reverse = String.Empty;
                for (int i = cArray.Length - 1; i > -1; i--)
                {
                    reverse += cArray[i];
                }
                return reverse;
            }
        }
    }

      • Build ClassLirary Project thành assembly(.dll) ở chế độ release

    • Exercise 4: Cách sử dụng dll trong ASP.NET
      • Tạo mới 1 trang asp default.aspx
      • Add Reence đến CommonProviders.dll
      • Thêm TextBox tên txtOriginalString,Button btnOK và Literal literalReveserString
                
                        
      • Viết code trong sự kiện click của btnOK để gọi method ReverseString và nhận giá trị từ txtOriginalString sau đó gán choliteralReveserString
    protected void btnOK_Click(object sender, EventArgs e)
        {
            CommonProvider commonProvider = new CommonProvider();
            literalReveserString.Text= commonProvider.ReverseString(txtOriginalString.Text);
        }
      • F5 và nhập AHN sau đó click OK
  • Exercise 5: Hiểu về cách đổ dữ liệu vào DropDownList Control
    • Tạo mới 1 trang asp net DropDownListControl.aspx
      • Thêm DropDownList tên là ddlDrives
      • Thêm CheckListBox tên cblFolders
                     
                  
    • Khai báo phương thức tên là ShowDrives để hiển thị các ổ đĩa vào ddlDrives
    • Khai báo phương thức tên là ShowFolder và  nhận tên ổ đĩa và hiển thị các folders lên cblFolders
    • Trong sự kiện PageLoad
      • Khai báo code gọi method ShowDrives để gọi ShowFolder với giá trị được chọn ở ddlDrives
      • F5 thấy được các ổ đĩa hiện lên ddlDrives
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ShowDrives();
        }
       
    }
    void ShowDrives()
    {
        DriveInfo[] allDrives = DriveInfo.GetDrives();
        DataTable dataTable=new DataTable();
        dataTable.Columns.Add("Id");
        dataTable.Columns.Add("Name");
        DataRow dataRow;
        dataRow = dataTable.NewRow();
        dataRow["Id"] = "";
        dataRow["Name"] = "None";
        dataTable.Rows.Add(dataRow);
        foreach (DriveInfo d in allDrives)
        {
            if (d.IsRea dy==true)
            {
                dataRow = dataTable.NewRow();
                dataRow["Id"] = d.Name;
                dataRow["Name"] = d.VolumeLabel;
                dataTable.Rows.Add(dataRow);   
            }                   
        }
        ddlDrives.DataSource = dataTable;
        ddlDrives.DataTextField = "Name";
        ddlDrives.DataValueField = "Id";
        ddlDrives.DataBind();
    }

    • Viết 1 phương thức ShowFolder để hiển thị tất cả các folder trong ổ đĩa
void ShowFolder()
    {
        DirectoryInfo directoryInfo = newDirectoryInfo(ddlDrives.SelectedValue.ToString());
        DirectoryInfo[] arrayFolder = directoryInfo.GetDirectories();
        DataTable dataTable = new DataTable();
        dataTable.Columns.Add("Id");
        dataTable.Columns.Add("Name");
       
        foreach (DirectoryInfo item in arrayFolder)
        {
            DataRow dataRow = dataTable.NewRow();
            dataRow["Id"] = item.Name;
            dataRow["Name"] = item.FullName;
            dataTable.Rows.Add(dataRow);
        }
        cblFolders.DataSource = dataTable;
        cblFolders.DataTextField = "Name";
        cblFolders.DataValueField = "Id";
        cblFolders.DataBind();
   }   
    • Trong sự kiện ddlDrives_SelectedIndexChanged nhớ set thuộc tính AutoPostBack =true cho DropDownList
protected void ddlDrives_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (ddlDrives.SelectedValue.ToString() != "")
        {
            ShowFolder();
            Literal1.Text = ddlDrives.SelectedValue.ToString();
        }
        else
        {
            cblFolders.Items.Clear();
            Literal1.Text = "Phai chon o dia";
        }
               }
  • Exercise 6: Hiểu về cách thêm AdRotator
    • Tạo mới 1 trang asp net ADV.aspx
    • Thêm AdRotator tên là AdRotatorLocal
      • Thêm 1 folder tên AdRotatorImage(copy some image)
      • Thêm file XML tên AdvLocal.xml sau đó khai báo code để hiển thị hình ảnh từ folder AdRotatorImage để mỗi lần trang web được load thì image sẽ được thay đổi
<?xml version="1.0" encoding="utf-8"?>
<Advertisements>
  <Ad>
    <ImageUrl>AdRotatorImage/bottom1.jpg</ImageUrl>
    <NavigateUrl>ccc</NavigateUrl>
    <AlternateText>quang cao</AlternateText>
    <Impressions>3</Impressions>
  </Ad>
  <Ad>
    <ImageUrl>AdRotatorImage/bottom2.jpg</ImageUrl>
    <NavigateUrl>ccc</NavigateUrl>
    <AlternateText>quang cao</AlternateText>
    <Impressions>3</Impressions>
  </Ad>
<Ad>
    <ImageUrl>AdRotatorImage/bottom3.jpg</ImageUrl>
    <NavigateUrl>ccc</NavigateUrl>
    <AlternateText>quang cao</AlternateText>
    <Impressions>3</Impressions>
  </Ad>
  <Ad>
    <ImageUrl>AdRotatorImage/bottom4.jpg</ImageUrl>
    <NavigateUrl>ccc</NavigateUrl>
    <AlternateText>quang cao</AlternateText>
    <Impressions>3</Impressions>
  </Ad>
                 </Advertisements>
      • Gán AdvLocal.xml cho thuộc tính AdvertisingFile
             
    • Thêm AdRotator tên là AdvInternet
      • Thêm file XML tên AdvInternet.xml sau đó khai báo code để hiển thị hình ảnh từ internet để mỗi lần trang web được load thì image sẽ được thay đổi
<?xml version="1.0" encoding="utf-8"?>
<Advertisements>
  <Ad>
    <ImageUrl>http://huukhang.com/images/default.gif</ImageUrl>
    <NavigateUrl>http://huukhang.com/images/default.gif</NavigateUrl>
    <AlternateText>quang cao</AlternateText>
    <Impressions>3</Impressions>
  </Ad>
  <Ad>
    <ImageUrl>http://huukhang.com/images/webparts.jpg</ImageUrl>
    <NavigateUrl>http://huukhang.com/images/webparts.jpg</NavigateUrl>
    <AlternateText>quang cao</AlternateText>
    <Impressions>3</Impressions>
  </Ad>
<Ad>
    <ImageUrl>http://huukhang.com/images/default3.gif</ImageUrl>
    <NavigateUrl>http://huukhang.com/images/default3.gif</NavigateUrl>
    <AlternateText>quang cao</AlternateText>
    <Impressions>3</Impressions>
  </Ad>
  <Ad>
    <ImageUrl>http://huukhang.com/images/default2.gif</ImageUrl>
    <NavigateUrl>http://huukhang.com/images/default2.gif</NavigateUrl>
    <AlternateText>quang cao</AlternateText>
    <Impressions>3</Impressions>
  </Ad>
</Advertisements>
           
      • Gán AdvInternet.xml cho thuộc tính AdvertisingFile
    • Exercise 7: Hiểu về cách lấy tên database từ SQL Server
      • Tạo mới 1 trang asp net SQLServerDatabase.aspx
      • Thêm DropDownList tên ddlDatabases
      • Trong sự kiện Page_Load khai bóa code để hiển thị tên database của SQL Server vào ddlDatabases
  • protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlDatabases.DataSource= GetDatabases();
                ddlDatabases.DataTextField = "name";
                ddlDatabases.DataValueField = "name";
                ddlDatabases.DataBind();
            }
        }
        SqlConnection sqlConnection = null;
        SqlCommand sqlCommand = null;
        SqlDataAdapter sqlDataAdapter = null;
        public DataTable GetDatabases()
        {
            DataTable dataTable = new DataTable();
            string connectionString = "server=(local);database=Master;integrated security=true";
            using (sqlConnection = new SqlConnection(connectionString))
            {
                sqlConnection.Open();
                string commnadText = "select * from sys.databases";
                sqlCommand = new SqlCommand(commnadText, sqlConnection);
                sqlCommand.CommandType = CommandType.Text;
                sqlDataAdapter = new SqlDataAdapter(sqlCommand);

                sqlDataAdapter.Fill(dataTable);
            }
            return dataTable;
       }
      • Thêm ListBox tên là lstTables

      • Trong sự kiện SelectedIndexChange của ddlDatabases,khai báo code để hiển thị tên Table của database đã chọn lên lstTables
    public DataTable GetTableFromDatabase()
        {
            DataTable dataTable = new DataTable();
            string connectionString = "server=(local);database=Master;integrated security=true";
            using (sqlConnection = new SqlConnection(connectionString))
            {
                sqlConnection.Open();
                string commnadText = "select * from "+ddlDatabases.SelectedValue.ToString()+".INFORMATION_SCHEMA.TABLES";
                sqlCommand = new SqlCommand(commnadText, sqlConnection);
                sqlCommand.CommandType = CommandType.Text;
                sqlDataAdapter = new SqlDataAdapter(sqlCommand);

                sqlDataAdapter.Fill(dataTable);
            }
            return dataTable;
        }
        protected void ddlDatabases_SelectedIndexChanged(object sender, EventArgs e)
        {
            lstTable.DataSource = GetTableFromDatabase();
            lstTable.DataTextField = "TABLE_NAME";
            lstTable.DataValueField = "TABLE_NAME";
            lstTable.DataBind();
      }
      • F5 để xem kết quả
    • Exercise 8: Hiểu về cách sử dụng lại code trong class của ASP.NET
      • Tạo mới 1 Class tên là DataTableProvider.cs và khai báo 2 method
      • Tên method thứ nhất là GetProvince,trả ra đối tượng DataTable nắm giữ dữ liệu của bảng Provinces
        SqlConnection sqlConnection = null;
        SqlCommand sqlCommand = null;
        SqlDataAdapter sqlDataAdapter = null;
        public DataTable GetProvince()
        {
            DataTable dataTable = new DataTable();
            string connectionString = "server=(local);database=StudentManagementForProfessional;integrated security=true";
            using (sqlConnection=new SqlConnection(connectionString))
            {
                sqlConnection.Open();
                string commnadText = "udsSelectAllProvinces";
                sqlCommand = new SqlCommand(commnadText,sqlConnection);
                sqlCommand.CommandType = CommandType.StoredProcedure;
                sqlDataAdapter = new SqlDataAdapter(sqlCommand);
               
                sqlDataAdapter.Fill(dataTable);
            }
            return dataTable;
        }
      • Tên method thứ hai là GetProvinceId nhận vào tham số provinceId,trả ra đối tượng DataTable nắm giữ dữ liệu của bảng Students mà chúng có tỉnh thành bằng provinceId
    public DataTable GetProvinceId(string provinceId)
        {
            DataTable dataTable = new DataTable();
            string connectionString = "server=(local);database=StudentManagementForProfessional;integrated security=true";
            using (sqlConnection = new SqlConnection(connectionString))
            {
                sqlConnection.Open();
                string commnadText = "udsSelectOneStudents";
                sqlCommand = new SqlCommand(commnadText, sqlConnection);
                sqlCommand.Parameters.AddWithValue("@ProvinceId", provinceId);
                sqlCommand.CommandType = CommandType.StoredProcedure;
                sqlDataAdapter = new SqlDataAdapter(sqlCommand);
                sqlDataAdapter.Fill(dataTable);
            }
            return dataTable;
        }

    • Exercise 9: Thêm trang ASP.NET tên ReuseClass.aspx
      • Thêm 2 dropdownlist tên là dropDownListForProvince , dropDownListForStudents

      • Trong sự kiện Page_Load gọi những method trong class để đổ dữ liệu vào 2 dropdownlist
    DataTableProvider dataTableProvider = new DataTableProvider();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                dropDownListForProvince.DataSource = dataTableProvider.GetProvince();
                dropDownListForProvince.DataTextField = "ProvinceName";
                dropDownListForProvince.DataValueField = "ProvinceId";
                dropDownListForProvince.DataBind();

                dropDownListForStudents.DataSource = dataTableProvider.GetStudents();
                dropDownListForStudents.DataTextField = "LastName";
                dropDownListForStudents.DataValueField = "StudentId";
                dropDownListForStudents.DataBind();
            }
       }
      • Trong sự kiện SelectedIndexChange mỗi lần click vào dropdownlist tỉnh thành thì hiện danh sách những sinh viên đó lên dropdownlist sinh viên

0 comments:

Post a Comment