Bagaimana mengelola multilanguage formulir Web solusi dalam Visual Studio.NET atau Visual Studio 2005

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 315903 - Melihat produk di mana artikel ini berlaku.
Artikel ini telah diarsipkan. Artikel ditawarkan dalam bentuk "apa adanya" dan tidak akan dapat diperbarui lagi.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan bagaimana untuk menggunakan data XML-pulau dan The.NET XML Kontrol server web untuk membuat Web kecil, multilanguage Aplikasi proyek yang menampilkan data Extensible Markup Language (XML). The aplikasi utama dibangun dalam Visual Basic.NET atau Visual Basic 2005. Aplikasi menggunakan Visual Komponen C# perpustakaan kelas untuk menggambarkan multilanguage referensi dan pelaksanaan warisan.

Persyaratan

Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows XP Professional atau Microsoft Windows XP Server dengan Microsoft.NET Framework dan Microsoft Visual Studio.NET diinstal
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan berikut topik:
  • Pelaksanaan warisan
  • XML dan Extensible Stylesheet Language transformasi (XSLT)
  • Microsoft.NET Web server kontrol

Membuat Multilanguage ASP.Aplikasi NET Web

Dalam langkah-langkah berikut, Anda membuat ASP kecil.NET Web Proyek aplikasi yang memungkinkan pelanggan untuk memilih item menu makan siang berdasarkan menghitung kalori. Untuk melakukannya, menggunakan sampel XML Kontrol server web, dokumen XML sederhana yang berisi menu data, dan XSL stylesheet untuk mengubah XML data. The XsltArgumentList kelas dari System.xml.XSL namespace memungkinkan Anda untuk menggunakan parameter dalam transformasi.
  1. Membuat proyek Visual Basic Windows aplikasi sebagai berikut:
    1. Mulai Microsoft Visual Studio.NET atau Microsoft Visual Studio 2005, dan kemudian klik Proyek baru.
    2. Di bawah Jenis proyek, klik Proyek-proyek Visual Basic. Di bawah Pola acu, klik ASP.Aplikasi NET Web. Mengubah nama proyek Menu, lalu klik Oke.

      Catatan Pada Visual Studio 2005, klik Visual Basic di bawah Jenis proyek.
  2. Pastikan bahwa jendela Explorer solusi terlihat. Jika tidak, tekan CTRL + ALT + L kombinasi tombol.
  3. Anda sekarang memiliki shell Visual Basic.NET atau Visual Basic 2005 Web Aplikasi proyek dalam solusi bernama Menu. Untuk membuat ini multilanguage solusi, Anda harus menambahkan Visual C# kelas perpustakaan.

    Dalam larutan Jendela Explorer, klik kanan Menu, arahkan ke Tambahkan, lalu klik Proyek baru. Di bawah Jenis proyek, klik Visual C# proyek. Di bawah Pola acu, klik Perpustakaan kelas. Menjaga nama standar, ClassLibrary1. Klik Oke untuk menambahkan perpustakaan kelas ini untuk solusi.

    Catatan Pada Visual Studio 2005, klik Visual C# di bawah Jenis proyek.
  4. Class1.cs muncul di jendela Editor. Tambahkan berikut namespace Deklarasi ke atas jendela ini:
    using System.Xml.Xsl;
    					
  5. Di bawah Class1 publik, tambahkan kode berikut:
    public XsltArgumentList CreateArgumentList(
    string ParamName, string NamespaceURI, string ParamValue)
    {
     XsltArgumentList tal = new XsltArgumentList();
     tal.AddParam(ParamName, NamespaceURI, ParamValue);
     return tal;
    }
    					
  6. Anda sekarang memiliki Visual C# kelas yang mengambil XSLT parameter informasi dan yang kembali contoh XsltArgumentList kelas. Anda sekarang dapat membangun aplikasi Visual Basic yang akan mengkonsumsi komponen ini.

    WebForm1.aspx sudah harus terbuka di Desain tampilan. Jika tidak, klik dua kali WebForm1.aspx di jendela Explorer solusi. Klik Desain tab di bawah jendela Editor untuk beralih ke tampilan desain.
  7. Tekan tombol F4 untuk mengakses halaman properti. Perubahan pageLayout properti untuk FlowLayout.
  8. Pada formulir Web, ketik Maksimum kalori:.
  9. Tambahkan TextBox kontrol, Tombol kontrol, dan XML mengendalikan ke bentuk sebagai berikut:
    1. Tekan CTRL + ALT + X kombinasi tombol untuk membuka Toolbox.
    2. Dalam toolbox, klik Formulir web.
    3. Tarik TextBox kontrol dan Tombol kontrol dari toolbox, dan drop kontrol tersebut ke Web Bentuk.
    4. Tekan F4 untuk mengakses halaman properti untuk Tombol kontrol.
    5. Perubahan Teks properti untuk Menyaring Menu.
    6. Posisi kursor setelah tombol, dan kemudian tekan ENTER untuk posisi kursor untuk XML kontrol.
    7. Tarik XML Web server mengontrol dari toolbox, dan drop kontrol ini ke Formulir Web.
    8. Tekan F4 untuk mengakses halaman properti XML kontrol.
    9. Perubahan DocumentSource properti untuk Menu.xml, dan kemudian mengubah TransformSource properti untuk Menu.XSLT.
  10. Klik dua kali Menyaring Menu untuk membuat Klik event handler di kelas di belakang kode formulir Web. Sebelum Anda menambahkan kode ke handler, Anda harus menambahkan referensi Visual C# kelas Perpustakaan sebagai berikut:
    1. Di jendela Explorer solusi, di bawah ClassLibrary1, klik kanan Referensi, lalu klik Menambahkan referensi.
    2. Pada Proyek tab, klik dua kali ClassLibrary1. Perhatikan bahwa ClassLibrary1 muncul di Komponen yang dipilih daftar kotak.
    3. Klik Oke. Perhatikan bahwa ClassLibrary1 muncul di bawah Referensi dalam aplikasi Web.
  11. Tambahkan kode berikut untuk Klik event handler:
    Dim myArgList As New ClassLibrary1.Class1()
    Xml1.TransformArgumentList = myArgList.CreateArgumentList("calories", "", TextBox1.Text)
    Xml1.Visible = True
    						
    Daftar argumen bahwa komponen Visual C# kembali memungkinkan Anda untuk melewati nilai TextBox kontrol sebagai parameter ke stylesheet. Stylesheet ini menggunakan XSLT perintah untuk menyaring semua item menu makan siang yang melebihi menghitung kalori itu jenis pelanggan. Baris berikut kode dari stylesheet menggambarkan bagaimana parameter diterima dan digunakan:
    <xsl:for-each select="lunch-menu/food[calories <= $calories]">
    					
  12. Menggunakan kode dari Menu.xml dan Menu.XSLT bagian untuk membuat Menu.xml dan Menu.xslt file. Di jendela solusi Explorer, klik kanan Menu proyek, dan kemudian menambahkan file .xml dan .xslt.

Daftar kode lengkap

Menu.xml

<?xml version='1.0'?>
<lunch-menu>
  <food>
    <name>Cheese Pizza</name>
    <price>$6.95</price>
    <description>Individual deep-dish pizza with lots of mozzarella cheese</description>
    <calories>800</calories>
  </food>
  <food>
    <name>Pepperoni Pizza</name>
    <price>$7.95</price>
    <description>Individual deep-dish cheese pizza with thick-cut pepperoni slices</description>
    <calories>950</calories>
  </food>
  <food>
    <name>The "Everything" Pizza</name>
    <price>$9.95</price>
    <description>Individual deep-dish pizza with all our toppings. House specialty!</description>
    <calories>800</calories>  </food>
  <food>
    <name>Hungarian Ghoulash</name>
    <price>$4.50</price>
    <description>Large serving in a sourdough bread bowl. A_local delight!</description>
    <calories>600</calories>
  </food>
  <food>
    <name>Maisey's Pork Sandwich</name>
    <price>$6.95</price>
    <description>A fresh pork fillet, deep-fried to perfection. Served with fries.</description>
    <calories>950</calories>
  </food>
</lunch-menu>
				

Menu.XSLT

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name="calories">1500</xsl:param>
  <xsl:template match="/">
    <HTML>
      <BODY STYLE="font-family:Arial, helvetica, sans-serif; font-size:12pt;
            background-color:#EEEEEE">
        <xsl:for-each select="lunch-menu/food[calories <= $calories]">
          <DIV STYLE="background-color:blue; color:white; padding:4px">
            <SPAN STYLE="font-weight:bold; color:white"><xsl:value-of select="name"/></SPAN>
            - <xsl:value-of select="price"/>
          </DIV>
          <DIV STYLE="margin-left:20px; margin-bottom:1em; font-size:10pt">
            <xsl:value-of select="description"/>
            <SPAN STYLE="font-style:italic">
              (<xsl:value-of select="calories"/> calories per serving)
            </SPAN>
          </DIV>
        </xsl:for-each>
      </BODY>
    </HTML>
  </xsl:template>
</xsl:stylesheet>
				

WebForm1.aspx

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="menu.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
    <title>WebForm1</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    <meta name=vs_defaultClientScript content="JavaScript">
    <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
  </HEAD>
  <body >

    <form id="Form1" method="post" runat="server">
<P>Maximum Calories: 
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Button id="Button1" runat="server" Text="Filter menu"></asp:Button></P>
<P>
<asp:Xml id="Xml1" runat="server" DocumentSource="menu.xml" TransformSource="menu.xslt"></asp:Xml></P>

    </form>

  </body>
</HTML>
				

Class1.cs Non-warisan contoh

using System;
using System.Xml.Xsl;

namespace ClassLibrary1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1
    {
        public XsltArgumentList CreateArgumentList(
        string ParamName, string NamespaceURI, string ParamValue)
        {
            XsltArgumentList tal = new XsltArgumentList();
            tal.AddParam(ParamName, NamespaceURI, ParamValue);
            return tal;
        }
    }
}
				

WebForm1.vb mewarisi System.Web.UI.Page

Imports System.Xml.Xsl

Public Class WebForm1
    Inherits System.Web.UI.Page
    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents Xml1 As System.Web.UI.WebControls.Xml

#Region " Web Form Designer Generated Code "

    'The Web Form Designer requires this call.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: The Web Form Designer requires this method call.
        'Do not use the Code editor to modify it.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        'Insert user code to initialize the page here.
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        Dim tal As New XsltArgumentList()
        tal.AddParam("calories", "", TextBox1.Text)
        Xml1.TransformArgumentList = tal
        Xml1.Visible = True
    End Sub
End Class
				

Class1.cs warisan contoh

using System;
using System.Xml.Xsl;

namespace ClassLibrary1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1 : System.Web.UI.Page
    {
        public XsltArgumentList CreateArgumentList(
        string ParamName, string NamespaceURI, string ParamValue)
        {
            XsltArgumentList tal = new XsltArgumentList();
            tal.AddParam(ParamName, NamespaceURI, ParamValue);
            return tal;
        }
    }
}
				

WebForm1.vb mewarisi ClassLibrary1

Imports System.Xml.Xsl

Public Class WebForm1
    Inherits ClassLibrary1.Class1
    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents Xml1 As System.Web.UI.WebControls.Xml

#Region " Web Form Designer Generated Code "

    'The Web Form Designer requires this call.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: The Web Form Designer requires this method call.
        'Do not use the Code editor to modify it.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        'Insert user code to initialize the page here.
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
    Xml1.TransformArgumentList = CreateArgumentList("calories", "", TextBox1.Text)
        Xml1.Visible = True
    End Sub
End Class
				

Memverifikasi bahwa ia bekerja

  1. Tekan tombol F5 untuk menjalankan aplikasi di debug modus.
  2. Menu seluruh muncul secara default. Perhatikan menghitung kalori untuk setiap item.
  3. Dalam kotak teks, ketik jumlah kalori, dan kemudian klik Menyaring Menu. Perhatikan bahwa hanya item menu yang kurang dari atau sama dengan jumlah kalori ini muncul.
  4. Tekan kombinasi tombol SHIFT + F5 untuk menghentikan debugging dan kembali ke Visual Studio.

Langkah-langkah untuk menunjukkan Multilanguage warisan

Untuk menggambarkan warisan multilanguage, Anda harus memodifikasi Web Aplikasi proyek. Alih-alih membuat sebuah instance dari kelas perpustakaan komponen, aplikasi mewarisi dari Visual Basic.Formulir NET Web kode di belakang kelas.

Kode di belakang kelas saat ini mewarisi System.web.UI.Page kelas. Karena Microsoft.NET tidak mendukung beberapa warisan, Anda harus memindahkan Halaman Warisan kelas ke kelas Visual C#.
  1. Menambahkan referensi ke System.web namespace di perpustakaan kelas sebelum Anda memodifikasi Visual C# kode.
  2. Di jendela Explorer solusi, di bawah ClassLibrary1, klik kanan Referensi, lalu klik Menambahkan referensi.
  3. Pada .NET tab, klik dua kali System.web.dll. Perhatikan bahwa System.web.dll muncul di Komponen yang dipilih daftar kotak.
  4. Klik Oke. Perhatikan bahwa System.web muncul di bawah Referensi di perpustakaan kelas Anda.
  5. Memodifikasi Class1 Deklarasi untuk mewarisi Halaman kelas:
    public class Class1 : System.Web.UI.Page
    					
  6. Visual Basic.NET atau Visual Basic 2005 kelas di belakang kode ini sekarang sudah siap untuk mewarisi Class1. Karena Class1 mewarisi Halaman kelas, kelas kode di belakang juga mewarisi Halaman kelas melalui pusakanya dari Class1.

    Di jendela Editor, klik WebForm1.aspx.vb. Di bawah kelas Deklarasi, menggantikan System.web.UI.Page dengan ClassLibrary1.Class. Kode yang diperbarui akan muncul sebagai berikut:
    Inherits ClassLibrary1.Class1
    					
  7. Komentar baris pertama dalam Klik event handler sebagai berikut:
    'Dim myArgList As New ClassLibrary1.Class1()
    					
  8. Mengubah baris kedua di Klik event handler dengan menelepon CreateArgumentList tanpa referensi objek:
    Xml1.TransformArgumentList = CreateArgumentList("calories", "", TextBox1.Text)
    					
  9. Ulangi langkah-langkah dalam Memverifikasi bahwa ia bekerja bagian.

Pemecahan Masalah

  • Ketika Anda bekerja dengan dua bahasa, sangat mudah untuk membingungkan sintaks. Visual C# sintaks tidak mengizinkan lebar margin kesalahan. Selain itu, Visual C#.Pesan galat NET tidak selalu sebagai cepat atau intuitif Visual Basic.Pesan galat bersih. Untuk memecahkan masalah ini, lihat "Bahasa setara" bagian dari Microsoft.NET Framework Software Development Kit (SDK):
    Bahasa setara
    .aspx http://msdn2.Microsoft.com/en-us/library/czz35az4 (vs.71)
  • Jika Anda ingin menggunakan implementasi warisan, belajar prinsip-prinsip yang berorientasi objek desain, dan mempertimbangkan aplikasi arsitektur di muka. Kesalahan yang umum adalah untuk menempatkan kode dalam aplikasi utama yang Anda butuhkan untuk mewarisi di perpustakaan kelas. Dalam skenario ini, Anda tidak dapat mewarisi utama aplikasi di perpustakaan kelas karena melingkar dependensi. Sebagai contoh, mencoba untuk menambahkan referensi ke Menu proyek dalam proyek ClassLibrary1. Anda menerima pesan galat berikut:
    Referensi 'Menu' tidak bisa ditambahkan. Menambahkan proyek ini sebagai referensi akan menyebabkan ketergantungan melingkar.

REFERENSI

Untuk informasi lebih lanjut, lihat untuk Website Microsoft berikut:
Naluri dasar: Menggunakan warisan di.NET, bagian 1
http://MSDN.Microsoft.com/en-US/Magazine/cc135806.aspx

Naluri dasar: Menggunakan warisan di.NET, bagian 2
http://MSDN.Microsoft.com/en-US/Magazine/cc301744.aspx

XML inti
http://MSDN.Microsoft.com/en-US/XML/bb291077.aspx

Kontrol Server XML Web
http://MSDN.Microsoft.com/Library/default.asp?URL=/Library/en-US/cpgenref/HTML/gnconxmlwebservercontrol.asp

XML Data-Kepulauan
http://MSDN.Microsoft.com/Library/default.asp?URL=/Library/en-US/comsrv2k/htm/cs_tp_bizdesk_nqok.asp

Properti

ID Artikel: 315903 - Kajian Terakhir: 24 Februari 2014 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual Basic 2005
Kata kunci: 
kbnosurvey kbarchive kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315903 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:315903

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com