ASP.NET 2.0高級數據處理之處理Null值
2006/12/6 8:05:59
數據控件支持多種用于處理空值或缺失數據的方法。例如,GridView、FormView和DetailsView都支持EmptyDataText或EmptyDataTemplate屬性,當數據源沒有返回數據行的時候,你可以使用這些屬性來指定控件顯示的內容。我們只需要設置EmptyDataText和EmptyDataTemplate其中的一個(如果兩個都設置了,EmptyDataTemplate會被重載)。你也可以在綁定字段(和衍生的字段類型)、模板字段或數據源參數對象上指定ConvertEmptyStringToNull屬性,指明在調用相關的數據源操作之前,來自客戶端的String.Empty值必須被轉換為空值。

  ObjectDataSource也支持ConvertNullToDbNull屬性,當相關的方法要求用DbNull代替空值(Visual Studio數據集中的TableAdapter類就有這個要求)的時候,我們就可以把這個屬性設置為真。你還可以指定綁定字段(和衍生的字段類型)的NullDisplayText屬性,當數據源返回的某個字段的值為空的時候,它指定顯示的內容。如果在編輯模式中這個值沒有發生變化,那么在更新操作中這個值會以空值的形式返回給后端數據源。最后,你還可以指定數據源參數的DefaultValue屬性,如果某個傳遞進來的參數值為空的時候,該屬性就給參數指定默認值。這些屬性是"鏈式反應"的,例如,如果ConvertEmptyStringToNull和DefaultValue都被設置了,那么String.Empty值會首先被轉換為空(null),接著被轉換為默認值。

    <asp:DetailsView…...>
 <Fields>
  <asp:BoundField DataField="Phone" HeaderText="Phone" NullDisplayText="not listed" SortExpression="Phone" />
  <asp:BoundField DataField="Fax" HeaderText="Fax" NullDisplayText="not listed" SortExpression="Fax" />
 </Fields>
 <EmptyDataTemplate>
  <asp:Image ID="Image1" runat="server" ImageUrl="~/Images/warning.gif" />There are no records to display
 </EmptyDataTemplate>
</asp:DetailsView>
<asp:SqlDataSource ……>
 <UpdateParameters>
  <asp:Parameter Name="ContactTitle" Type="String" DefaultValue="Owner" ConvertEmptyStringToNull="true" />
  <asp:Parameter Name="Region" Type="String" ConvertEmptyStringToNull="true" />
  <asp:Parameter Name="Phone" Type="String" ConvertEmptyStringToNull="true" />
  <asp:Parameter Name="Fax" Type="String" ConvertEmptyStringToNull="true" />
  <asp:Parameter Name="CustomerID" Type="String" />
 </UpdateParameters>
 ……
</asp:SqlDataSource>
  你可以使用這些處理空值的屬性來實現下拉列表過濾器,讓它開始時顯示數據源的所有值,直到過濾器中的某個值被選中為止。我們是這樣實現它的:首先給下拉列表添加一個空字符串值的數據項,并設置數據源中的與下拉列表相關的ControlParameter(控件參數)的ConvertEmptyStringToNull屬性。

  接著在數據源的SelectCommand中,你可以通過檢測空值來返回所有(沒有過慮)值。下面的例子演示了這種技術,它使用了一個簡單的SQL命令,當然你也可以在存儲過程的實現中執行空值檢測。請注意下拉列表的AppendDataBoundItems屬性的使用,它允許來自下拉列表數據源的值被添加到"ALL"(這個項是我們靜態添加的)數據項后面。同時我們要注意,在默認情況下,如果傳遞給SelectCommand 的相關參數的值中只要有一個為空,SqlDataSource就不執行Select操作。當傳遞了空值的時候,為了強制Select操作執行,你可以把它的CancelSelectOnNullParameter屬性設置為假。

    <asp:DropDownList AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlDataSource2" DataT

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 日本一道本高清| 1000部又爽又黄的做黄禁片| 欧美性猛交xxxx| 午夜伦伦影理论片大片| 黄色欧美视频在线观看| 国产精品泄火熟女| a级毛片无码免费真人| 日韩在线视频网| 免费a级毛片在线播放| 色婷婷激婷婷深爱五月小蛇| 国语自产少妇精品视频| 一边摸下面一别吃奶| 日本三级做a全过程在线观看| 亚洲av无码一区二区三区在线播放 | 欧美成人免费tv在线播放| 免费国产成人午夜在线观看| 肥老熟妇伦子伦456视频| 国产美女一级毛片| 中文字幕高清在线| 最新版天堂中文在线官网| 亚洲欧美一区二区三区在线| 男女下面进入拍拍免费看| 国产在线视频你懂的| 亚洲日本va在线观看| 好吊妞这里有精品| 久久精品国产网红主播| 欧美国产日韩在线观看| 午夜时刻免费实验区观看| 青娱乐国产精品| 国产草草影院ccyycom软件| se94se欧美综合色| 日韩亚洲av无码一区二区三区 | 亚洲成人免费看| 美国式禁忌免费| 国产伦精品一区二区三区无广告| 97麻豆精品国产自产在线观看| 无码色偷偷亚洲国内自拍| 亚洲国产精品嫩草影院久久| 精品四虎免费观看国产高清午夜| 国产成人无码网站| 99国内精品久久久久久久|