Làm th? nào đ? qu?n l? các gi?i pháp Web Forms multilanguage trong Visual Studio.NET ho?c Visual Studio 2005

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 315903 - Xem s?n ph?m mà bài này áp d?ng vào.
Bài vi?t này đ? đư?c lưu tr?. Bài vi?t đư?c cung c?p "nguyên tr?ng" và s? không c?n đư?c c?p nh?t n?a.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này ch?ng t? làm th? nào đ? s? d?ng m?t d? li?u XML-h?n đ?o và các.NET XML Đi?u khi?n máy ch? web đ? t?o ra m?t trang Web nh?, multilanguage D? án ?ng d?ng hi?n th? d? li?u Extensible Markup Language (XML). Các ?ng d?ng chính đư?c xây d?ng trong Visual Basic.NET ho?c Visual Basic 2005. Các ?ng d?ng s? d?ng m?t th? giác C# l?p thư vi?n thành ph?n đ? minh h?a multilanguage tham kh?o và th?a k? vi?c th?c hi?n.

Yêu c?u

Danh sách sau v?ch ra đư?c đ? ngh? ph?n c?ng, ph?n m?m, h? t?ng m?ng, và gói d?ch v? mà b?n c?n:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 H? ph?c v?, Microsoft Windows XP Professional ho?c Microsoft Windows XP Server v?i Microsoft.NET Framework và Microsoft Visual Studio.NET cài đ?t
Bài vi?t này gi? đ?nh r?ng b?n đ? quen thu?c v?i sau các ch? đ?:
  • Th?a k? vi?c th?c hi?n
  • XML và m? r?ng ngôn ng? Stylesheet Transformation (XSLT)
  • Microsoft.NET Web máy ch? đi?u khi?n

T?o m?t ASP Multilanguage.NET Web ?ng d?ng

Trong các bư?c sau đây, b?n t?o m?t ASP nh?.NET Web D? án ?ng d?ng mà cho phép m?t khách hàng đ? ch?n m?c tr?nh đơn b?a trưa d?a trên Calorie count. Đ? th?c hi?n vi?c này, các m?u s? d?ng các XML Đi?u khi?n máy ch? web, m?t tài li?u XML đơn gi?n ch?a tr?nh đơn d? li?u, và m?t stylesheet XSL đ? bi?n đ?i d? li?u XML. Các XsltArgumentList l?p t? các System.xml.XSL không gian tên cho phép b?n s? d?ng tham s? trong s? chuy?n đ?i.
  1. T?o m?t d? án ?ng d?ng Windows Visual Basic như sau:
    1. B?t đ?u Microsoft Visual Studio.NET ho?c Microsoft Visual Studio 2005, và sau đó nh?p vào D? án m?i.
    2. Dư?i Các lo?i d? án, b?m Visual Basic d? án. Dư?i Khuôn mẫu, b?m ASP.NET Web ?ng d?ng. Đ?i tên d? án Tr?nh đơn, sau đó b?m Ok.

      Chú ý Trong Visual Studio 2005, nh?p vào Visual Basic dư?i Các lo?i d? án.
  2. Ch?c ch?n r?ng c?a s? Explorer gi?i pháp này có th? nh?n th?y. N?u nó không ph?i là, b?m t? h?p phím CTRL + ALT + L.
  3. Bây gi? b?n có v? m?t Visual Basic.NET ho?c Visual Basic 2005 Web D? án ?ng d?ng trong m?t gi?i pháp đ?t tên Menu. Đ? làm đi?u này m?t multilanguage gi?i pháp, b?n ph?i thêm m?t Visual C# l?p Library.

    Trong dung d?ch C?a s? Explorer, b?m chu?t ph?i vào Tr?nh đơn, đi?m đ?n Thêm, sau đó b?m D? án m?i. Dư?i Các lo?i d? án, b?m Visual C# các d? án. Dư?i Khuôn mẫu, b?m Thư vi?n l?p. Gi? tên m?c đ?nh, ClassLibrary1. Nh?p vào Ok thêm thư vi?n l?p này cho các gi?i pháp.

    Chú ý Trong Visual Studio 2005, nh?p vào Visual C# dư?i Các lo?i d? án.
  4. Class1.CS xu?t hi?n trong c?a s? tr?nh so?n th?o. Thêm dư?i đây tuyên b? không gian tên trên cùng c?a c?a s? này:
    using System.Xml.Xsl;
    					
  5. Dư?i công Class1, thêm m? sau đây:
    public XsltArgumentList CreateArgumentList(
    string ParamName, string NamespaceURI, string ParamValue)
    {
     XsltArgumentList tal = new XsltArgumentList();
     tal.AddParam(ParamName, NamespaceURI, ParamValue);
     return tal;
    }
    					
  6. Bây gi? b?n có m?t Visual C# l?p mà ph?i m?t XSLT tham s? thông tin và mà tr? v? m?t th? hi?n c?a các XsltArgumentList l?p h?c. Bây gi? b?n có th? xây d?ng các ?ng d?ng Visual Basic s? tiêu th? c?u ph?n này.

    WebForm1.aspx nên đ? đư?c m? trong Thi?t k? c?nh. N?u không, b?m đúp vào WebForm1.aspx trong c?a s? Explorer gi?i pháp. B?m vào các Thi?t k? tab bên dư?i c?a s? so?n th?o đ? chuy?n sang thi?t k? xem.
  7. B?m phím F4 đ? truy c?p vào trang thu?c tính. Thay đ?i các pageLayout b?t đ?ng s?n đ? FlowLayout.
  8. Trên m?u Web, g? Năng lư?ng t?i đa:.
  9. Thêm m?t TextBox ki?m soát, m?t Nút ki?m soát, và m?t XML ki?m soát các h?nh th?c như sau:
    1. B?m t? h?p phím CTRL + ALT + X đ? m? các h?p công c?.
    2. Trong h?p công c?, nh?p Các h?nh th?c web.
    3. Kéo m?t TextBox ki?m soát và m?t Nút đi?u khi?n t? h?p công c? và th? các đi?u khi?n này lên Web H?nh th?c.
    4. Nh?n F4 đ? truy c?p vào trang thu?c tính cho các Nút ki?m soát.
    5. Thay đ?i các Văn b?n b?t đ?ng s?n đ? Menu b? l?c.
    6. V? trí con tr? sau khi nút, vaø sau ñoù baám ENTER đ? v? trí con tr? chu?t cho các XML ki?m soát.
    7. Kéo m?t XML Web server ki?m soát t? h?p công c?, và th? đi?u khi?n lên M?u Web.
    8. Nh?n F4 đ? truy c?p vào trang thu?c tính c?a các XML ki?m soát.
    9. Thay đ?i các DocumentSource b?t đ?ng s?n đ? Menu.xml, và sau đó thay đ?i các TransformSource b?t đ?ng s?n đ? Menu.XSLT.
  10. B?m đúp Menu b? l?c đ? t?o ra m?t Nh?p vào x? l? s? ki?n trong l?p m?-đ?ng sau c?a m?u Web. Trư?c khi b?n thêm m? đ? x? l?, b?n ph?i thêm m?t tham chi?u đ?n Visual C# l?p h?c Thư vi?n như sau:
    1. Trong c?a s? gi?i pháp Explorer, dư?i ClassLibrary1, b?m chu?t ph?i vào Tham khảo, sau đó b?m Thêm tài li?u tham kh?o.
    2. Trên các Các d? án tab, b?m đúp vào ClassLibrary1. Nh?n th?y r?ng ClassLibrary1 xu?t hi?n trong các Các thành ph?n đư?c ch?n h?p danh sách.
    3. Nh?p vào Ok. Nh?n th?y r?ng ClassLibrary1 xu?t hi?n dư?i Tham khảo trong ?ng d?ng Web.
  11. Thêm m? sau đây đ? các Nh?p vào x? l? s? ki?n:
    Dim myArgList As New ClassLibrary1.Class1()
    Xml1.TransformArgumentList = myArgList.CreateArgumentList("calories", "", TextBox1.Text)
    Xml1.Visible = True
    						
    Danh sách đ?i s? thành ph?n Visual C# tr? v? cho pheùp baïn vư?t qua giá tr? c?a các TextBox ki?m soát như m?t tham s? đ? stylesheet. Stylesheet này s? d?ng XSLT l?nh đ? l?c ra m?i kho?n m?c tr?nh đơn b?a trưa vư?t quá calorie count mà các lo?i khách hàng. D?ng sau m? t? stylesheet minh ho? cách các tham s? nh?n đư?c và đư?c s? d?ng:
    <xsl:for-each select="lunch-menu/food[calories <= $calories]">
    					
  12. S? d?ng m? t? các Menu.xml và các Menu.XSLT ph?n đ? t?o ra Menu.xml và Menu.xslt t?p tin. Trong c?a s? gi?i pháp Explorer, b?m chu?t ph?i vào d? án tr?nh đơn, và sau đó thêm các t?p tin .xml và .xslt.

Danh sách m? đ?y đ?

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>
				

Ví d? không th?a k? Class1.CS

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 k? th?a 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
				

Ví d? th?a k? Class1.CS

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 k? th?a 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
				

Xác minh r?ng nó ho?t đ?ng

  1. B?m phím F5 đ? ch?y các ?ng d?ng trong g? l?i ch? đ?.
  2. Toàn b? đơn xu?t hi?n theo m?c đ?nh. H?y lưu ? c?a các Calorie đ?m cho m?i m?c.
  3. Trong h?p văn b?n, g? m?t s? calo, và sau đó nh?p vào Menu b? l?c. Nh?n th?y r?ng ch? nh?ng m?c tr?nh đơn là nh? hơn ho?c b?ng s? lư?ng calo này xu?t hi?n.
  4. B?m t? h?p phím SHIFT + F5 đ? ngăn ch?n g? l?i và đ? Quay l?i Visual Studio.

Các bư?c đ? ch?ng minh Multilanguage th?a k?

Đ? minh h?a multilanguage k? th?a, b?n ph?i s?a đ?i Web D? án ?ng d?ng. Thay v? c?a vi?c t?o ra m?t th? hi?n c?a thư vi?n l?p thành ph?n, các ?ng d?ng th?a hư?ng t? Visual Basic.NET Web m?u M?-đ?ng sau l?p.

M?-đ?ng sau l?p hi?n đang th?a hư?ng các System.web.UI.Page l?p h?c. B?i v? Microsoft.NET không h? tr? nhi?u k? th?a, b?n ph?i di chuy?n Trang th?a k? l?p l?p Visual C#.
  1. Thêm m?t tham chi?u đ?n các System.web không gian tên trong thư vi?n l?p h?c trư?c khi b?n s?a đ?i Visual C# M?.
  2. Trong c?a s? gi?i pháp Explorer, dư?i ClassLibrary1, b?m chu?t ph?i vào Tham khảo, sau đó b?m Thêm tài li?u tham kh?o.
  3. Trên các .NET tab, b?m đúp vào System.web.dll. Nh?n th?y r?ng System.web.dll xu?t hi?n trong các Các thành ph?n đư?c ch?n h?p danh sách.
  4. Nh?p vào Ok. Nh?n th?y r?ng System.web xu?t hi?n dư?i Tham khảo trong thư vi?n l?p c?a b?n.
  5. S?a đ?i các Class1 tuyên b? th?a k? các Trang l?p:
    public class Class1 : System.Web.UI.Page
    					
  6. Visual Basic.NET ho?c Visual Basic 2005 m?-đ?ng sau l?p là bây gi? đ? s?n sàng đ? k? th?a Class1. B?i v? Class1 th?a hư?ng các Trang l?p h?c, l?p m?-đ?ng sau c?ng k? th?a các Trang l?p h?c thông qua th?a k? c?a Class1.

    Trong c?a s? so?n th?o, b?m WebForm1.aspx.vb. Theo tuyên b? l?p h?c, thay th? System.web.UI.Page v?i ClassLibrary1.Class. M? C?p Nh?t s? xu?t hi?n như sau:
    Inherits ClassLibrary1.Class1
    					
  7. B?nh lu?n trong d?ng đ?u tiên trong các Nh?p vào s? ki?n x? l? như sau:
    'Dim myArgList As New ClassLibrary1.Class1()
    					
  8. S?a đ?i d?ng th? hai trong các Nh?p vào x? l? s? ki?n b?ng cách g?i CreateArgumentList N?u không có m?t tài li?u tham kh?o đ?i tư?ng:
    Xml1.TransformArgumentList = CreateArgumentList("calories", "", TextBox1.Text)
    					
  9. L?p l?i các bư?c trong các Xác minh r?ng nó ho?t đ?ng keá tieáp.

Khắc phục sự cố

  • Khi b?n làm vi?c v?i hai ngôn ng?, nó r?t d? gây nh?m l?n cú pháp. Visual C# cú pháp không cho phép m?t biên đ? r?ng c?a các l?i. Hơn n?a, Visual C#.NET l?i thông đi?p là không ph?i luôn luôn như nhanh chóng ho?c tr?c quan như Visual Basic.Thông báo l?i m?ng. Đ? kh?c ph?c nh?ng khó khăn, tham kh?o "Ngôn ng? tương đương" ph?n c?a Microsoft.NET Framework ph?n m?m B? phát tri?n (SDK):
    Ngôn ng? tương đương
    http://msdn2.Microsoft.com/en-US/Library/czz35az4 (vs.71) .aspx
  • N?u b?n mu?n s? d?ng th?a k? th?c hi?n, nghiên c?u hư?ng đ?i tư?ng nguyên t?c c?a thi?t k?, và xem xét đơn ki?n trúc trong trư?c. M?t l?i thư?ng là đ? đ?t m? trong m?t ?ng d?ng chính mà b?n c?n ph?i k? th?a trong m?t thư vi?n l?p. Trong trư?ng h?p này, b?n không th? th?a k? chính ?ng d?ng trong m?t thư vi?n l?p v? thông tư quan h? ph? thu?c. Ví d?, c? g?ng thêm m?t tham chi?u đ?n các d? án Menu trong d? án ClassLibrary1. B?n nh?n đư?c thông báo l?i sau:
    M?t tham chi?u đ?n Không th? thêm 'Menu'. Thêm d? án này như m?t tham kh?o s? gây ra m?t Thông tư ph? thu?c.

TÀI LIỆU THAM KHẢO

Đ? bi?t thêm chi ti?t, ch? đ? sau Microsoft Web site:
B?n năng cơ b?n: S? d?ng th?a k? trong.NET, ph?n 1
http://MSDN.Microsoft.com/en-US/Magazine/cc135806.aspx

B?n năng cơ b?n: S? d?ng th?a k? trong.NET, ph?n 2
http://MSDN.Microsoft.com/en-US/Magazine/cc301744.aspx

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

Đi?u khi?n máy ch? XML Web
http://MSDN.Microsoft.com/Library/Default.asp?URL=/Library/en-US/cpgenref/HTML/gnconxmlwebservercontrol.asp

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

Thu?c tính

ID c?a bài: 315903 - L?n xem xét sau cùng: 21 Tháng Hai 2014 - Xem xét l?i: 2.0
Áp d?ng
  • 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
T? khóa: 
kbnosurvey kbarchive kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315903 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:315903

Cung cấp Phản hồi

 

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