国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

ASP.NET 2.0高級(jí)數(shù)據(jù)處理之主從數(shù)據(jù)表

2024-07-10 13:09:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  在前面的文章中,我們已經(jīng)知道如何將controlparameter(控件參數(shù))與gridview的selectedvalue屬性相關(guān)聯(lián)以實(shí)現(xiàn)主-從數(shù)據(jù)表。selectedvalue屬性返回datakeynames屬性所指定的第一個(gè)字段的值。你也可以給datakeynames屬性指定多個(gè)用逗號(hào)分隔的字段值,例如,你可能需要把多個(gè)值傳遞到從表的數(shù)據(jù)源。這些額外的鍵字段值是通過(guò)selecteddatakey屬性暴露的,它返回一個(gè)datakey對(duì)象,包含鍵字段的名稱(chēng)/值對(duì)(pair)。通過(guò)在表達(dá)式中設(shè)置propertyname屬性(例如selecteddatakey.values("title_id")),controlparameter甚至于可以引用這些鍵。

<asp:controlparameter name="firstkey" controlid="mastergrid" propertyname="selecteddatakey.values[0]"/>
<asp:controlparameter name="secondkey" controlid="mastergrid" propertyname="selecteddatakey.values[1]"/>

  下面的例子演示的代碼枚舉了datakeys集合,并從gridview的selecteddatakey中獲取鍵字段的值:

protected sub gridview1_selectedindexchanged(byval sender as object, byval e as system.eventargs)
response.write("<b>selecteddatakey.value: </b>" & server.htmlencode(gridview1.selecteddatakey.value) & "<br />")
response.write("<b>datakey field 1: </b>" & server.htmlencode(gridview1.selecteddatakey.values("au_id")) & "<br />")
response.write("<b>datakey field 2: </b>" & server.htmlencode(gridview1.selecteddatakey.values("title_id")) & "<br />")
end sub
protected sub gridview1_databound(byval sender as object, byval e as system.eventargs)
dim key as datakey
response.write("<b>gridview datakeys: </b><br />")
for each key in gridview1.datakeys
response.write(server.htmlencode(key.values(0)) & ", ")
response.write(server.htmlencode(key.values(1)) & "<br/>")
next
end sub

  前面的主-從表示例把從表的數(shù)據(jù)顯示在窗體的一個(gè)獨(dú)立的控件中,但是有時(shí)候我們希望從表控件是嵌套在主表控件上,作為主表的一部分來(lái)顯示的。為了實(shí)現(xiàn)這種功能,你必須把從表控件和相關(guān)的數(shù)據(jù)源都包含到主表控件的模板中,并帶有一個(gè)數(shù)據(jù)源參數(shù),讓該參數(shù)從主表數(shù)據(jù)源的字段中獲取值。由于使用這種方式的時(shí)候,沒(méi)有可供關(guān)聯(lián)的宣告式參數(shù)對(duì)象,你必須通過(guò)在代碼中編程來(lái)設(shè)置參數(shù)值。當(dāng)主表控件的數(shù)據(jù)項(xiàng)進(jìn)行綁定的時(shí)候,你可以在主表控件的某個(gè)事件處理(例如formview的databound事件)中設(shè)置參數(shù)值。下面的例子演示了這種技術(shù)。

<script runat="server">
protected sub formview1_databound(byval sender as object, byval e as system.eventargs)
orderdetailsdatasource.selectparameters("orderid").defaultvalue = formview1.dataitem("orderid")
end sub
</script>

<asp:formview datasourceid="ordersdatasource"……>
<itemtemplate>
<b>orderid:</b>
<asp:label id="orderidlabel" runat="server" text='<%# eval("orderid") %>'></asp:label><br />
……
<asp:gridview datasourceid="orderdetailsdatasource" ……>
……
</asp:gridview>
</itemtemplate>
</asp:formview>

<asp:sqldatasource connectionstring="<%$ connectionstrings:northwind %>" id="ordersdatasource" runat="server" selectcommand="select [orderid], [orderdate], [shipcity], [shipcountry] from [orders]">
</asp:sqldatasource>
<asp:sqldatasource connectionstring="<%$ connectionstrings:northwind %>" id="orderdetailsdatasource" runat="server" selectcommand="select [order details].orderid, products.productname, [order details].unitprice, [order details].quantity from [order details] inner join products on [order details].productid = products.productid where [order details].orderid = @orderid">
<selectparameters>
<asp:parameter name="orderid" />
</selectparameters>
</asp:sqldatasource>

  下面的例子演示了類(lèi)似的技術(shù),它使用的是datalist,處理datalist的itemdatabound事件來(lái)設(shè)置數(shù)據(jù)源參數(shù)值。

<script runat="server">
protected sub datalist1_itemdatabound(byval sender as object, byval e as system.web.ui.webcontrols.datalistitemeventargs)
dim s as sqldatasource = e.item.findcontrol("orderdetailsdatasource")
s.selectparameters("orderid").defaultvalue = e.item.dataitem("orderid")
end sub
</script>
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 山西省| 江门市| 安塞县| 涿鹿县| 锦屏县| 龙山县| 南城县| 汝南县| 黄骅市| 全南县| 通山县| 托里县| 新乡市| 奇台县| 准格尔旗| 桃园县| 阜新| 淮滨县| 云霄县| 来凤县| 九台市| 常山县| 屯留县| 陇西县| 镇雄县| 杨浦区| 科技| 松阳县| 潼南县| 涟水县| 桑植县| 冀州市| 沁水县| 炉霍县| 日喀则市| 嘉黎县| 环江| 舒兰市| 吉安县| 安龙县| 凌云县|