|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。asp.net|初级|数据 数据控件撑持多种用于处置空值或缺掉数据的办法。比方,GridView、FormView和DetailsView都撑持EmptyDataText或EmptyDataTemplate属性,当数据源没有前往数据行的时分,你可使用这些属性来指定控件显现的内容。我们只必要设置EmptyDataText和EmptyDataTemplate个中的一个(假如两个都设置了,EmptyDataTemplate会被重载)。你也能够在绑定字段(和衍生的字段范例)、模板字段或数据源参数工具上指定ConvertEmptyStringToNull属性,指明在挪用相干的数据源操纵之前,来自客户真个String.Empty值必需被转换为空值。
ObjectDataSource也撑持ConvertNullToDbNull属性,当相干的办法请求用DbNull取代空值(VisualStudio数据会合的TableAdapter类就有这个请求)的时分,我们就能够把这个属性设置为真。你还能够指定绑定字段(和衍生的字段范例)的NullDisplayText属性,当数据源前往的某个字段的值为空的时分,它指定显现的内容。假如在编纂形式中这个值没有产生变更,那末在更新操纵中这个值会以空值的情势前往给后端数据源。最初,你还能够指定命据源参数的DefaultValue属性,假如某个传送出去的参数值为空的时分,该属性就给参数指定默许值。这些属性是"链式反响"的,比方,假如ConvertEmptyStringToNull和DefaultValue都被设置了,那末String.Empty值会起首被转换为空(null),接着被转换为默许值。
<asp:DetailsView…...>
<Fields>
<asp:BoundFieldDataField="Phone"HeaderText="Phone"NullDisplayText="notlisted"SortExpression="Phone"/>
<asp:BoundFieldDataField="Fax"HeaderText="Fax"NullDisplayText="notlisted"SortExpression="Fax"/>
</Fields>
<EmptyDataTemplate>
<asp:ImageID="Image1"runat="server"ImageUrl="~/Images/warning.gif"/>Therearenorecordstodisplay
</EmptyDataTemplate>
</asp:DetailsView>
<asp:SqlDataSource……>
<UpdateParameters>
<asp:ParameterName="ContactTitle"Type="String"DefaultValue="Owner"ConvertEmptyStringToNull="true"/>
<asp:ParameterName="Region"Type="String"ConvertEmptyStringToNull="true"/>
<asp:ParameterName="Phone"Type="String"ConvertEmptyStringToNull="true"/>
<asp:ParameterName="Fax"Type="String"ConvertEmptyStringToNull="true"/>
<asp:ParameterName="CustomerID"Type="String"/>
</UpdateParameters>
……
</asp:SqlDataSource>
你可使用这些处置空值的属性来完成下拉列表过滤器,让它入手下手时显现数据源的一切值,直到过滤器中的某个值被选中为止。我们是如许完成它的:起首给下拉列表增加一个空字符串值的数据项,并设置数据源中的与下拉列表相干的ControlParameter(控件参数)的ConvertEmptyStringToNull属性。
接着在数据源的SelectCommand中,你能够经由过程检测空值来前往一切(没有过虑)值。上面的例子演示了这类手艺,它利用了一个复杂的SQL命令,固然你也能够在存储历程的完成中实行空值检测。请注重下拉列表的AppendDataBoundItems属性的利用,它同意来自下拉列表数据源的值被增加到"ALL"(这个项是我们静态增加的)数据项前面。同时我们要注重,在默许情形下,假如传送给SelectCommand的相干参数的值中只需有一个为空,SqlDataSource就不实行Select操纵。当传送了空值的时分,为了强迫Select操纵实行,你能够把它的CancelSelectOnNullParameter属性设置为假。
<asp:DropDownListAppendDataBoundItems="True"AutoPostBack="True"DataSourceID="SqlDataSource2"DataTextField="state"DataValueField="state"ID="DropDownList1"runat="server">
<asp:ListItemValue="">ALL</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSourceConnectionString="<%$ConnectionStrings:Pubs%>"ID="SqlDataSource2"runat="server"SelectCommand="SELECTDISTINCT[state]FROM[authors]">
</asp:SqlDataSource>
<asp:SqlDataSourceConnectionString="<%$ConnectionStrings:Pubs%>"ID="SqlDataSource1"runat="server"SelectCommand="SELECTau_id,au_lname,au_fname,stateFROMauthorsWHEREstate=IsNull(@state,state)"CancelSelectOnNullParameter="False">
<SelectParameters>
<asp:ControlParameterControlID="DropDownList1"Name="state"PropertyName="SelectedValue"Type="String"/>
</SelectParameters>
</asp:SqlDataSource>兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情! |
|