熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Visual C#或Visual Basic創建Web應用程序(下)

2013-11-13 10:23:48  來源: .NET編程 

  測試項目
  
  在生成菜單上單擊生成解決方案
  
  在調試菜單上單擊開始執行(不調試)
  
  現在可以在 Web 窗體頁上顯示數據庫中的數據並可在浏覽器中查看該數據Titles 列由超級鏈接組成在本演練的稍後部分您將能夠單擊這些超級鏈接之一並顯示特定書籍的詳細信息
  
  在浏覽器中查看 Titles 表
  
   
  
  向 Web 窗體添加詳細信息面板
  
  詳細信息面板使您可以查看有關所選書籍的其他信息而不會使 DataGrid 充斥各種無關的材料
  
  在此步驟中將添加 DataView它使您可以篩選表以便只顯示當前選定的行
  
  添加 DataView
  
  切換到 Web 窗體頁設計視圖
  
  在視圖菜單上單擊工具箱
  
  將一個 DataView 控件從數據選項卡拖到 Web 窗體設計器表面
  
  一個新對象 dataView 被添加到 Web 窗體設計器表面的非可視部分
  
  選擇 dataView 對象並單擊視圖菜單上的屬性窗口顯示該對象的屬性
  
  展開數據節點並選擇 Table 屬性單擊下拉列表中的titles以鏈接該表如下圖所示
  
  名稱 myDataSettitles 出現在 Table 屬性的旁邊
  
  dataView 屬性
  
   
  
  在此步驟中添加與數據列相對應的 Label 控件並將每個 Label 綁定到 DataView
  
  添加標簽 (Label) 控件
  
  對於所使用的每個明細字段(如 titleidtitleprice 和 pubdate)將一個 Label 控件從工具箱的Web 窗體選項卡拖到 Web 窗體設計器表面
  
  選擇每個標簽並將其綁定到一個字段如下所示
  
  單擊視圖菜單上的屬性窗口以顯示選定標簽的屬性
  
  展開數據屬性
  
  單擊DataBindings(數據綁定)旁邊的省略號 () 按鈕以選擇數據綁定屬性頁
  
  出現Labeln 數據綁定對話框(這裡的 n 是標簽號)下圖顯示 Label 的對話框
  
  從左窗格的可綁定屬性中選擇 Text 屬性並從右窗格的 dataView 節點中選擇適當的列
  
  標簽可綁定屬性
  
   
  
  從格式下拉列表中選擇正確的格式例如對於 price 可以使用貨幣格式對於 pubdate 可以使用可用的日期格式之一
  
  單擊確定按鈕
  
  在每個標簽前加上一個包含說明文本(例如書名 ID書名出版日期價格)的 HTML Label 以添加描述這些標簽的文本為此請打開工具箱將 Label 從HTML選項卡拖到 Web 窗體設計器表面將標簽放在對應的綁定標簽的前面並適當修改其文本重復此過程以創建四個標簽
  
  現在Web 窗體設計器表面看起來應該如下圖所示
  
  Web 窗體設計器表面
  
   
  
  在此步驟中添加必要的代碼以便在單擊 DataGrid 時激活詳細信息
  
  激活詳細信息
  
  雙擊 DataGrid 對象
  
  這將向代碼隱藏文件添加 DataGrid_SelectedIndexChanged 事件處理程序並切換到代碼視圖
  
  在 DataGrid_SelectedIndexChanged 方法中添加下列代碼以設置 dataViewRowFilter使它只選擇希望顯示的行
  // C#
  myComponentFillDataSet(myDataSet);
  int index = DataGridSelectedIndex;
  string key = DataGridDataKeys[index]ToString();
  dataViewRowFilter = DataGridDataKeyField + = + key + ;
   Visual Basic
  MyComponentFillDataSet(myDataSet)
  Dim index As Integer
  Dim key As String
  index = DataGridSelectedIndex
  key = DataGridDataKeys(index)ToString()
  dataViewRowFilter = DataGridDataKeyField & = & key &
  從概念上講您所做的事情非常類似於指定 SQL 查詢的 WHERE 子句並使用它僅從表中獲取單個行在創建 DataGrid 時指定的 DataKeys 屬性是唯一標識每一行的一種方法通過將項索引映射到匹配鍵來確定選定行的鍵值此鍵是有效的 title_id現在可以用於唯一選擇要使用的行因為 title_id 是數據庫的主鍵所以此方法可行對於其他的數據庫或其他數據鍵不一定能夠保證這些約束因此如果想在沒有主鍵的表上使用此技術應該修改代碼
  
  在 DataGrid_SelectedIndexChanged 方法中通過對每個要使用的標簽調用 DataBind() 來綁定該標簽在設置行篩選器更改的後面放置這些調用
  // C#
  LabelDataBind();
  LabelDataBind();
  LabelDataBind();
  LabelDataBind();
   Visual Basic
  LabelDataBind()
  LabelDataBind()
  LabelDataBind()
  LabelDataBind()
  生成和啟動項目
  單擊一個標題以獲取詳細信息
  
  使用 Visual C# 或 Visual Basic 創建業務對象
  
  在本節中您將業務對象創建為 Visual C# 或 Visual Basic 類該類將包含通過計算特定書籍的優惠價格來實現業務規則的方法或子例程
  
  使用 Visual C# 創建業務對象
  
  在類視圖右擊 MyWebForm
  
  在快捷菜單上單擊添加然後單擊添加類
  
  出現C# 添加類向導如下圖所示
  
  C# 添加類向導
  
   
  
  在對話框中將類命名為 MyPaymentRules 並單擊完成
  
  在類視圖右擊 MyPaymentRules 類
  
  在快捷菜單上單擊添加然後單擊添加方法
  
  C# 添加方法向導出現
  
  C# 添加方法向導
  
   
  
  在方法名稱文本框中輸入 CalcDiscount
  從下拉列表中選擇下列信息
  參數類型:double
  參數名:price
  返回類型:double
  單擊添加然後單擊完成
  以下方法將被添加到 MyPaymentRules 類中
  
  // C#
  public double CalcDiscount(double price)
  {
  return ;
  }
  如下所示修改 return 語句
  return * price;
  使用 Visual Basic 創建業務對象
  
  在解決方案資源管理器右擊 MyWebForm
  
  在快捷菜單上單擊添加然後單擊添加類
  
  出現添加新項對話框如下圖所示
  
  添加新項對話框
  
   
  
  在添加新項對話框中將類文件的默認名稱從 Classvb 更改為 MyPaymentRulesvb然後單擊打開
  
  隨即創建 MyPaymentRulesvb 類
  
  如果類代碼尚不可見解決方案資源管理器中雙擊 MyPaymentRulesvb 並將如下函數添加到類中
   Visual Basic
  Public Class MyPaymentRules
   Add the following code
  Dim price As Double
  Public Function CalcDiscount(ByVal price As Double)
  Return * price
  End Function
   End of the new code
  End Class
  使用業務對象
  
  在本節中您將新的綁定標簽添加到 Web 窗體頁新標簽顯示包括 % 折扣的優惠價格
  
  實現業務對象
  
  將 WebForms Label 控件從工具箱拖到 Web 窗體設計器表面(它采用 ID Label
  
  此標簽將顯示優惠價格
  
  將 Label 的文本屬性綁定到 DataView 的價格列
  不必使用特定的格式原因是格式將在代碼中指定
  
  將 HTML Label 控件從工具箱拖到 Web 窗體設計器表面並將其放在 Label 的前面
  
  將標簽文本更改為優惠價格
  
  查看 WebFormaspxcs 文件(或 WebFormaspxvb 文件)並將下列代碼添加到 DataGrid_SelectedIndexChanged 方法/子方法的結尾
  // C#
  // Declare an instance of the business object:
  MyPaymentRules pr = new MyPaymentRules();
  // Invoke the CalcDiscount Method:
  try
  {
  decimal price = myDataSettitles[index]price;
  LabelText = StringFormat({:C}
  prCalcDiscount(ConvertToDouble(price)));
  }
  catch
  {
  // If the price is blank display a message:
  LabelText = Price is not available for this item;
  LabelText = Discount is not available for this item;
  }
   Visual Basic
   Declare an instance of the business object
  Dim pr As New MyPaymentRules()
  
   Invoke the CalcDicount Method:
  Try
  Dim price As decimal

From:http://tw.wingwit.com/Article/program/net/201311/13481.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.