關於ActiveViewIndex

Home Home
引用 | 編輯 對的人
2008-10-01 00:11
樓主
推文 x0
這是從微軟copy過的,我想問這段的意思

Protected Sub radioButton_CheckedChanged(ByVal sender As _
Object, ByVal e As System.EventArgs)
If radioProduct.Checked Then
MultiView1.ActiveViewIndex = SearchType.Products
ElseIf radioCategory.Checked Then
MultiView1.ActiveViewIndex = SearchType.Category
End If
End Sub

if 的時候 是要顯示 view1控制項裡面的東西嗎? 那SearchType.Products 是什麼意思?

<%@ Page Language="VB"%>
<script runat="server">
Protected Enum SearchType As Integer
NotSet = -1
Products = 0
Category = 1
End Enum

Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
If MultiView1.ActiveViewIndex > -1 Then
Dim searchTerm As String = ""
Select Case MultiView1.ActiveViewIndex
Case SearchType.Products
DoSearch(textProductName.Text, _
MultiView1.ActiveViewIndex)
Case SearchType.Category
DoSearch(textCategory.Text, _
MultiView1.ActiveViewIndex ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 伯爵奶茶
2008-10-15 11:42
1樓
  
下面是引用對的人於2008-10-01 00:11發表的 關於ActiveViewIndex:
if 的時候 是要顯示 view1控制項裡面的東西嗎? 那SearchType.Products 是什麼意思?

你問的 SearchType 就是列舉,引用一下你貼的程式碼,其中 SearchType 的列舉的定義如下:

 Protected Enum SearchType As Integer
      NotSet = -1
      Products = 0
      Category = 1
  End Enum

再看下面這一段

Protected Sub radioButton_CheckedChanged(ByVal sender As _
          Object, ByVal e As System.EventArgs)
      If radioProduct.Checked Then
        MultiView1.ActiveViewIndex = SearchType.Products
      ElseIf radioCategory.Checked Then
        MultiView1.ActiveViewIndex = SearchType.Category
      End If
End Sub

MultiView1.ActiveViewIndex 的起始值是從 0 開始,0 代碼第一頁,1 代表第二頁。
如果給 -1 則 MultiView1 不會顯示任何東西。

所以,程式碼的意思是說,有兩個 RadioButton ,一個 Name=radioProduct,一個 Name=radioCategory,
兩個 RadioButton 共用一個事件處理函式 radioButton_CheckedChanged 。

如果 radioProduct.Checked = True 的話,就顯示 MultiView1 的第一頁,
如果 radioCategory.Checked = True 的話,就顯示 MultiView1 的第二頁。

如果不用列舉的話,可以改成下面這樣子

Protected Sub radioButton_CheckedChanged(ByVal sender As _
          Object, ByVal e As System.EventArgs)
      If radioProduct.Checked Then
        MultiView1.ActiveViewIndex = 0
      ElseIf radioCategory.Checked Then
        MultiView1.ActiveViewIndex = 1
      End If
End Sub

不過呢.....不是這樣寫不好,而是可讀性不高....因為 0 代表什麼?1 又代表什麼?
所以為了提高可讀性,就用列舉來表示 0 是指顯示產品,1 是顯示分類。

獻花 x0