首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 進階資料處理:主從資料表與 SelectedDataKey 多鍵應用

     編輯:關於ASP.NET

SelectedDataKey 多鍵值取得

GridView DataKeyNames 可設定多欄位 (逗號分隔),SelectedValue 僅回傳第一欄;完整鍵值透過 SelectedDataKey.Values["欄位名"] 或索引 Values[0] 取得。ControlParameter 可直接繫結:

<asp:ControlParameter Name="FirstKey" ControlID="MasterGrid" PropertyName="SelectedDataKey.Values[0]" />
<asp:ControlParameter Name="SecondKey" ControlID="MasterGrid" PropertyName="SelectedDataKey.Values[1]" />

事件示範:列舉 DataKeys 與 SelectedDataKey

Protected Sub GridView1_SelectedIndexChanged(...)
    Response.Write("SelectedDataKey.Value: " & GridView1.SelectedDataKey.Value & "<br/>")
    Response.Write("DataKey Field 1: " & GridView1.SelectedDataKey.Values("au_id") & "<br/>")
    Response.Write("DataKey Field 2: " & GridView1.SelectedDataKey.Values("title_id") & "<br/>")
End Sub

Protected Sub GridView1_DataBound(...)
    For Each key In GridView1.DataKeys
        Response.Write(key.Values(0) & ", " & key.Values(1) & "<br/>")
    Next
End Sub

巢狀主從顯示:FormView + GridView

從表 GridView 與 SqlDataSource 放入主表 FormView 的 ItemTemplate,於 FormView.DataBound 動態設定參數:

Protected Sub FormView1_DataBound(...)
    OrderDetailsDataSource.SelectParameters("OrderID").DefaultValue = FormView1.DataItem("OrderID")
End Sub

DataList 同理:ItemDataBound 事件設定參數

Protected Sub DataList1_ItemDataBound(...)
    Dim s As SqlDataSource = e.Item.FindControl("OrderDetailsDataSource")
    s.SelectParameters("OrderID").DefaultValue = e.Item.DataItem("OrderID")
End Sub

此模式適用於任何繫資料控制項巢狀主從呈現,關鍵在於「資料繫結事件」中以 DataItem 取得當前主記錄鍵值,指派給從表 DataSource 參數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved