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

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

動(dòng)態(tài)指定任意類(lèi)型的ObjectDataSource對(duì)象的查詢參數(shù)

2024-07-10 12:38:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
ObjectDataSource在使用時(shí)需要事先指定查詢方法SelectMethod(其實(shí)還有InsertMethod,UpdateMethod和DeleteMethod),TypeName和DataObjectTypeName,然后我們只需要編寫(xiě)好SelectMethod方法的實(shí)現(xiàn),如果需要分頁(yè),那么還要指定MaximumRwosParameterName屬性和StartRowIndexParameterName,然后在SelectMethod方法中加上相應(yīng)的參數(shù),當(dāng)然,SelectCountMethod屬性也是要指定的,并且參數(shù)簽名必須和SelectMethod方法的參數(shù)簽名相同。這些我在前面那篇文章中都有詳細(xì)的介紹。這里我想說(shuō)一下如何動(dòng)態(tài)指定ObjectDataSource對(duì)象的查詢參數(shù),例如我們使用ObjectDataSource對(duì)象來(lái)綁定ListView數(shù)據(jù)源,一般查詢參數(shù)都是事先通過(guò)SelectParameter確定好并傳入給ObjectDataSource的,如果我們想實(shí)現(xiàn)根據(jù)用戶選擇的條件進(jìn)行查詢,在頁(yè)面回傳的時(shí)候?qū)⒉樵儣l件傳遞給ObectDataSource對(duì)象,并且允許隨意指定查詢參數(shù)的數(shù)據(jù)類(lèi)型,怎么實(shí)現(xiàn)呢?

  其實(shí)ObjectDataSource參數(shù)是可以指定查詢參數(shù)的,它有很多種不同類(lèi)型的查詢參數(shù),如ControlParameter,CookieParameter,F(xiàn)ormParameter,ProfileParameter,QueryStringParameter,SessionParameter等。由于不能在ObjectDataSource的SelectMethod方法中引入頁(yè)面元素,如文本框的值,下拉列表的值,這是因?yàn)镺bjectDataSource在初始化并指定SelectMethod方法時(shí)頁(yè)面上的其它元素還沒(méi)有完成初始化,此時(shí)引用頁(yè)面上的這些元素將會(huì)引發(fā)空引用的異常。正確的方法是通過(guò)ObjectDataSource的查詢參數(shù)來(lái)解決此類(lèi)問(wèn)題,如我們可以使用QueryStringParameter通過(guò)頁(yè)面的url來(lái)傳遞參數(shù),還可以使用CookieParameter通過(guò)客戶端的Cookie傳遞參數(shù),使用SessionParameter通過(guò)服務(wù)端的Session來(lái)傳遞參數(shù)。不過(guò)這些參數(shù)都有問(wèn)題,QueryStringParameter只能傳遞字符串類(lèi)型的參數(shù),復(fù)雜類(lèi)型的參數(shù)很難實(shí)現(xiàn);CookieParameter收到客戶端Cookie的限制,也不太理想;SessionParameter有些夸張,我不能因?yàn)橛脩粝胪瓿梢淮魏?jiǎn)單的查詢操作就在服務(wù)器上存放一大堆Session吧?

  看來(lái)使用ControlParameter是比較理想的,畢竟用戶都是通過(guò)頁(yè)面上的控件來(lái)指定查詢條件的,而程序也正是通過(guò)頁(yè)面上的控件才得到用戶所指定的查詢條件的,這個(gè)是比較符合邏輯的。下面我們就來(lái)看看如何通過(guò)ControlParameter來(lái)實(shí)現(xiàn)ObjectDataSource的查詢參數(shù)動(dòng)態(tài)指定。
代碼如下:
<asp:ObjectDataSource ID="DataSource" runat="server" SelectMethod="SelectDatas"
TypeName="MilitaryShopWeb.Admin.SystemConfig.SysLog" DataObjectTypeName="MilitaryShopModel.Log" EnablePaging="True"
MaximumRowsParameterName="maxRows" StartRowIndexParameterName="startIndex" SelectCountMethod="CountAll" DeleteMethod="DeleteData">
<SelectParameters>
<asp:ControlParameter ControlID="ddlCate" PropertyName="SelectedValue" Name="cate" />
<asp:ControlParameter ControlID="ddlArea" PropertyName="SelectedValue" Name="area" />
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金乡县| 五河县| 微博| 盖州市| 黄浦区| 沐川县| 凭祥市| 葫芦岛市| 油尖旺区| 济源市| 自治县| 富川| 航空| 阳江市| 遂宁市| 峨眉山市| 肇东市| 谷城县| 深圳市| 松溪县| 红河县| 怀远县| 阜南县| 麻阳| 方正县| 利川市| 安顺市| 湟源县| 凌云县| 上高县| 嘉兴市| 洛隆县| 林州市| 广饶县| 江山市| 临沭县| 丹巴县| 新竹县| 海门市| 北票市| 桦甸市|