현재 XML 문서에서 숫자와 이름을 검색하고 동적으로 테이블을 작성하여 테이블을 작성하고 있습니다. 현재 테이블이 작성되어 있으며 이름에 해당하는 숫자를 임의로 선택할지 여부를 선택하는 상자를 선택할 수 있습니다. 오름차순인지 내림차순인지를 결정하기 위해 다른 상자를 확인할 수 있어야합니다. 나는 테이블 객체에 정렬을하는 방법을 모른다. 배열로 먼저 읽은 다음 테이블에 다시 읽어야합니까?테이블을 오름차순 또는 내림차순으로 정렬하려면 어떻게해야합니까? VB.NET
XML 문서 예 :
- <roster>
- <student>
<order>01</order>
<name>Sabrina Spark</name>
</student>
- <student>
<order>02</order>
<name>Ryan Weble</name>
</student>
- <student>
<order>03</order>
<name>Fredric Scott</name>
</student>
- <student>
<order>04</order>
<name>Cory Snyder</name>
</student>
코드 :
마크 업 :
<퍼센트 @ 페이지 언어 = 뒤에>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<link href="StyleSheet1.css" rel="Stylesheet" type = "text/css" media = "screen" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CheckBox ID="Descending" runat="server" Text="Descending" />
<asp:CheckBox ID="ExistingOrder" runat="server" Text="Existing Order" />
<br />
<asp:Xml ID="Xml1" runat="server"></asp:Xml>
<br />
<asp:XmlDataSource ID="XmlDataSource1" runat="server"
DataFile="~/App_Data/roster.xml" TransformFile="~/App_Data/roster.xsl">
</asp:XmlDataSource>
<br />
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<br />
<br />
<asp:Button ID="cmdRandomize" runat="server" Height="36px" Text="Generate Table"
Width="127px" />
<br />
</div>
</form>
</body>
</html>
코드 "itc320_presentation_order._Default"% :
Imports System.Xml
Imports System.IO
Partial Public Class _Default
Inherits System.Web.UI.Page
Dim rand As New Random()
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
End If
End Sub
Protected Sub cmdRandomize_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdRandomize.Click
Dim intArl(15) As Integer
Dim ds As DataSet
Dim dr As DataRow
Dim tbl As New Table
Dim strPath As String
'Placehold control will hold the dynamically created table
PlaceHolder1.Controls.Clear()
'build path to data file
strPath = Server.MapPath("/App_Data") & "\roster.xml"
ds = New DataSet()
'load dataset object with data from xml source
ds.ReadXml(strPath)
Dim dtRoster As DataTable = ds.Tables(0)
'Generate table of random order ints
If ExistingOrder.Checked = False Then
genUnique(intArl, dtRoster.Rows.Count - 1)
Else
intArl = ViewState("intArl")
End If
Dim intSeq As Integer = 0
For Each dr In dtRoster.Rows
Dim tr As New TableRow
For intColCnt = 0 To 1
Dim tc As New TableCell()
Dim txtBox As New TextBox()
If intColCnt = 0 Then
txtBox.Text = intSeq
Else
txtBox.Text = dr(intColCnt)
End If
'Add the control to the TableCell
tc.Controls.Add(txtBox)
'Add the TableCell to the TableRow
tr.Cells.Add(tc)
Next
If intSeq Mod 2 Then
tr.CssClass = "odd"
Else
tr.CssClass = "even"
End If
tbl.Rows.Add(tr)
intSeq += 1
Next
PlaceHolder1.Controls.Add(tbl)
ViewState("intArl") = intArl
End Sub
Private Sub genUnique(ByRef intArl() As Integer, ByVal intCnt As Integer)
Dim intGen As Integer
Dim intClassCnt As Integer
For intClassCnt = 0 To intCnt
regen:
'intGen = Int(Rnd() * 20) + 1
intGen = rand.Next(1, intCnt + 2)
If Not alreadyExists(intArl, intGen, intClassCnt) Then
intArl(intClassCnt) = intGen
Else : GoTo regen
End If
Next
End Sub
Private Function alreadyExists(ByRef intArl() As Integer, ByVal num As Integer, ByVal curr As Integer) As Boolean
Dim intCnt As Integer
'Scan the entries in the array for the existance of the newly
'generated number. Return True if found to already exist in the array
For intCnt = 0 To curr - 1
If num = intArl(intCnt) Then
Return True
End If
Next
Return False
End Function
End Class
링크와 같이 구현하면 함수에 정확히 전달할 수 있습니까? 알파벳 순으로 대신 오름차순/내림차순으로 변경하는 방법을 모르겠습니다. – amazinghorse24
htmllinkbutton에는 서버 측에서 처리 할 수있는 onlick이 있습니다. 두 개의 단추가 있다면 두 개의 처리기가있을 수 있으며 이해하지 못하면 아무 것도 건네 줄 필요가 없습니다. – rerun
'Private Function AlphabeticSort (ByVal dtTable as DataTable, ByVal sortOrder As Integer) DataTable로 함수 머리글은 무엇입니까?하지만 내 코드에는 적용되지 않습니다. 내가해야 할 일에 적응하는 데 어려움을 겪고있다. – amazinghorse24