【IT168技术文档】
数据控件支持多种用于处理空值或缺失数据的方法。例如,GridView、FormView和DetailsView都支持EmptyDataText或EmptyDataTemplate属性,当数据源没有返回数据行的时候,你可以使用这些属性来指定控件显示的内容。我们只需要设置EmptyDataText和EmptyDataTemplate其中的一个(如果两个都设置了,EmptyDataTemplate会被重载)。你也可以在绑定字段(和衍生的字段类型)、模板字段或数据源参数对象上指定ConvertEmptyStringToNull属性,指明在调用相关的数据源操作之前,来自客户端的String.Empty值必须被转换为空值。
ObjectDataSource也支持ConvertNullToDbNull属性,当相关的方法要求用DbNull代替空值(Visual Studio数据集中的TableAdapter类就有这个要求)的时候,我们就可以把这个属性设置为真。你还可以指定绑定字段(和衍生的字段类型)的NullDisplayText属性,当数据源返回的某个字段的值为空的时候,它指定显示的内容。如果在编辑模式中这个值没有发生变化,那么在更新操作中这个值会以空值的形式返回给后端数据源。最后,你还可以指定数据源参数的DefaultValue属性,如果某个传递进来的参数值为空的时候,该属性就给参数指定默认值。这些属性是"链式反应"的,例如,如果ConvertEmptyStringToNull和DefaultValue都被设置了,那么String.Empty值会首先被转换为空(null),接着被转换为默认值。
<aspetailsView…...>
<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>
</aspetailsView>
<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>
<aspropDownList AppendDataBoundItems="True"
AutoPostBack="True"
DataSourceID="SqlDataSource2"
DataTextField="state" DataValueField="state"
ID="DropDownList1" runat="server">
<asp:ListItem Value="">ALL</asp:ListItem>
</aspropDownList>
<asp:SqlDataSource
ConnectionString="<%$ ConnectionStrings:Pubs %>"
ID="SqlDataSource2" runat="server"
SelectCommand="SELECT DISTINCT [state] FROM [authors]">
</asp:SqlDataSource>
![]()
<asp:SqlDataSource
ConnectionString="<%$ ConnectionStrings:Pubs %>"
ID="SqlDataSource1"
runat="server"
SelectCommand="SELECT au_id, au_lname, au_fname,
state FROM authors WHERE state = IsNull(@state, state)"
CancelSelectOnNullParameter="False">
<SelectParameters>
<asp:ControlParameter
ControlID="DropDownList1" Name="state"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
| 第1页: 第1页 |