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

組合ASP.NET 2.0數據控件構建強大用戶接口

2013-11-13 10:20:03  來源: .NET編程 

  主要控件

  DetailsView 和 FormView控件在顯示後端數據源中的單個記錄時功能強大但是強迫用戶在一頁中顯示無數條記錄這很不現實為此我們可以將GridView控件和DetailsView或FormView控件結合在一起來讓用戶從GridView控件中選擇單個列然後利用DetailsView或FormView控件來浏覽或操縱其中的內容因此GridView是主要控件而細節則是通過其他控件顯示的

  這種方法的第一步是設法可以選擇GridView控件中的單個行(例如可以允許用戶選擇一行顯示在其它控件中)此外GridView控件的SelecterStyle屬性可以顯式的設定所選行的風格從而用戶知道或可以很容易的記住當前選擇的是哪一行

  可以使用一個命令域來輔助行選擇CommandField對象的ShowSelectButton屬性使得該對象成為行選擇的對象CommandField的ButtonType屬性允許你控制如何進行選擇當選定一行時GridView控件的DataKeyName屬性指名分配給選定項的值該值可能通過選擇事件傳遞給其他控件

  當單擊GridView中某行的選擇按鈕時隨即發生返回且更新GridView的SelectedRow屬性除了SelectedRow屬性外GridView控件還提供了SelectedIndexSelectedValue 和SelectedDataKey屬性SelectedIndex屬性返回選定行的索引而SelectedValue和SelectedDatakey屬性返回基於GridView的DataKeyNames屬性的值

  細節

  既然已經設定好主要的GridView控件下一步就可以添加一個DetailsView或FormView控件來顯示選定行中的數據在我們的例子中DetailsView控件將被添加到GridView所在的頁面中此外DetailsView需要一個數據源因此要求另外一個SQL Server數據源我們想顯示GridView控件中選定行中的數據所以需要傳遞所選行的ID

  演示GridView控件與其它數據控件相結合應用的最好方式就是利用實例代碼下面的GridView控件連接到SQL Servcer顯示Northwind數據庫中數據這裡使用了三個控件DropDownListGridView和DetailsView

  用戶可以使用DropDownList控件指定加載到GridView控件中的數據用戶選擇某個城市響應員工的數據就被加載因此當在GridView控件中通過顯示為鏈接標簽的命令按鈕選擇了某個記錄後指定員工的詳細信息將會顯示在DetailsView控件中同時選定行呈黃色高亮狀態從而用戶可以容易的識別選擇的是哪一行

  代碼中使用了三個SqlDataSource對象用於為每個控件加載數據GridView控件使用了來自DropDownList控件的SQL中的選定值這是通過將來自DropDownList控件的值利用SqlDataSource控件的SelectParameters屬性傳遞給SQL的見列表A所示

  你可以使用ControlParameter對象通過指定你想使用的數據的ID和屬性來獲得表單上其它控件中的數據同時當傳遞SelectedValue屬性時鍵值也通過ControlParameter對象從GridView傳遞到DetailView控件GridView中選定行的SelectedValue使用指定給GridView控件的DataKeyNames值被賦值此外為了從控件獲得數據你還可以使用來自QuerySringcookies和很多其它選項的數據

  列表B中包括了擁有三個控件和用於數據加載的對象全部源代碼本例演示了使用數據控件操縱數據而不用編寫任何代碼每個控件提供了大量的事件可用來為這些事件編寫代碼實現本文的同樣任務和更多其它任務

  更多強大接口

  ASPNET 包括大量以GridView為代表的數據控件我們使用這些控件可以很容易地顯示來自後端數據源中的數據你還可以將GridView控件和其它的像DetailsView或FormView控件結合起來使用來操縱更多的數據對象以及在一個表單域或單獨一個表單中顯示要編輯或浏覽的數據

  <asp:SqlDataSource ID=ds runat=server SelectCommand=SELECT EmployeeID LastName FirstName Region FROM Employees WHERE (City=@City)            ConnectionString=Server=localhost;Database=Northwind;Trusted_Connection=true>
<SelectParameters>
<asp:ControlParameterControlID=DropDownList Name=City PropertyName=SelectedValue Type=String />
</SelectParameters>
</asp:SqlDataSource>

  <%@ Page Language=C# %>
<html>
<head id=Head runat=server>
<title>MasterDetail Page Example</title>
</head><body>
<form id=frmMasterDetail runat=server>
<b>Select a city:</b>
<asp:DropDownList ID=DropDownList DataSourceID=SqlDataSource AutoPostBack=trueDataTextField=City runat=server />
<asp:SqlDataSource ID=SqlDataSource runat=server SelectCommand=SELECT DISTINCT City FROM Employees
ConnectionString=Server=localhost;Database=Northwind;Trusted_Connection=true />
<asp:GridView ID=GridView AllowSorting=True AllowPaging=True runat=server DataSourceID=SqlDataSource DataKeyNames=EmployeeID AutoGenerateColumns=False Width=px PageSize= BackColor=#ccc BorderColor=black BorderStyle=Groove BorderWidth= Caption=GridView Example>
<SelectedRowStyleBackColor=yellow />
<Columns>
<asp:CommandFieldShowSelectButton=True />
<asp:BoundFieldDataField=EmployeeID HeaderText=ID ReadOnly=True SortExpression=EmployeeID />
<asp:BoundFieldDataField=LastName HeaderText=Last SortExpression=LastName />
<asp:BoundFieldDataField=FirstName HeaderText=First SortExpression=FirstName />
<asp:BoundFieldDataField=Region HeaderText=Region SortExpression=Region />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID=SqlDataSource runat=server SelectCommand=SELECT EmployeeID LastName FirstName Region FROM Employees WHERE (City=@City)
ConnectionString=Server=localhost;Database=Northwind;Trusted_Connection=true>
<SelectParameters>
<asp:ControlParameterControlID=DropDownList Name=City PropertyName=SelectedValue Type=String />
</SelectParameters>
</asp:SqlDataSource>
<asp:DetailsViewAutoGenerateRows=False DataKeyNames=EmployeeID DataSourceID=SqlDataSourceHeaderText=Employee Details ID=DetailsView runat=server Width=px>
<Fields>
<asp:BoundFieldDataField=EmployeeID HeaderText=ID ReadOnly=True />
<asp:BoundFieldDataField=LastName HeaderText=Last />
<asp:BoundFieldDataField=FirstName HeaderText=First />
<asp:BoundFieldDataField=Region HeaderText=Region />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ConnectionString=Server=localhost;Database=Northwind;Trusted_Connection=true ID=SqlDataSource
runat=server SelectCommand=SELECT EmployeeID LastName FirstName Region FROM Employees WHERE (EmployeeID = @EmployeeID)>
<SelectParameters>
<asp:ControlParameterControlID=GridView Name=EmployeeID PropertyName=SelectedValue Type=String />
</SelectParameters>
</asp:SqlDataSource>
</form></body></html>


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