ASP.NET编程:组合ASP.NET 2.0数据控件构建壮大用户接...
在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。asp.net|接口|控件|数据在后面的几个专栏中,我们分离先容了ASP.NET2.0中的几个数据控件:GridView,DetailsView,和FormView。本文,我将分离这几个数据控件对GridView控件做一个具体的先容,利用户可以对每一个数据行取得一个具体的懂得。次要控件
DetailsView和FormView控件在显现后端数据源中的单个纪录时功效壮大,可是强制用户在一页中显现有数笔记录这很不实际。为此,我们能够将GridView控件和DetailsView或FormView控件分离在一同,来让用户从GridView控件当选择单个列,然后使用DetailsView或FormView控件来扫瞄或利用个中的内容。因而,GridView是次要控件,而细节则是经由过程其他控件显现的。
这类办法的第一步是想法能够选择GridView控件中的单个行(比方,能够同意用户选择一行显现在别的控件中)。别的,GridView控件的SelecterStyle属性能够显式的设定所选行的作风,从而用户晓得或能够很简单的记着以后选择的是哪一行。
可使用一个命令域来帮助行选择。CommandField工具的ShowSelectButton属性使得该工具成为行选择的工具。CommandField的ButtonType属性同意你把持怎样举行选择,中选定一行时,GridView控件的DataKeyName属性指名分派给选定项的值,该值大概经由过程选择事务传送给其他控件。
当单击GridView中某行的选择按钮时,随即产生前往且更新GridView的SelectedRow属性。除SelectedRow属性外,GridView控件还供应了SelectedIndex、SelectedValue、和SelectedDataKey属性。SelectedIndex属性前往选定行的索引,而SelectedValue和SelectedDatakey属性前往基于GridView的DataKeyNames属性的值。
细节
既然已设定好次要的GridView控件,下一步就能够增加一个DetailsView或FormView控件来显现选定行中的数据。在我们的例子中,DetailsView控件将被增加到GridView地点的页面中。别的,DetailsView必要一个数据源,因而请求别的一个SQLServer数据源。我们想显现GridView控件当选定行中的数据,以是必要传送所选行的ID。
演示GridView控件与别的数据控件相分离使用的最好体例就是使用实例代码。上面的GridView控件毗连到SQLServcer,显现Northwind数据库中数据。这里利用了三个控件:DropDownList、GridView和DetailsView。
用户可使用DropDownList控件指定加载到GridView控件中的数据。用户选择某个“乡村”,呼应员工的数据就被加载。因而,当在GridView控件中经由过程显现为链接标签的命令按钮选择了某个纪录后,指定员工的具体信息将会显现在DetailsView控件中。同时,选定行呈黄色高亮形态,从而用户能够简单的辨认选择的是哪一行。
代码中利用了三个SqlDataSource工具用于为每一个控件加载数据。GridView控件利用了来自DropDownList控件的SQL中的选定值,这是经由过程未来自DropDownList控件的值使用SqlDataSource控件的SelectParameters属性传送给SQL的。见以下所示。
<asp:SqlDataSourceID="ds"runat="server"SelectCommand="SELECTEmployeeID,LastName,FirstName,RegionFROMEmployeesWHERE(City=@City)"ConnectionString="Server=localhost;Database=Northwind;Trusted_Connection=true">
<SelectParameters>
<asp:ControlParameterControlID="DropDownList1"Name="City"PropertyName="SelectedValue"Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
你可使用ControlParameter工具经由过程指定你想利用的数据的ID和属性来取得表单上别的控件中的数据。同时,当传送SelectedValue属性时,键值也经由过程ControlParameter工具从GridView传送到DetailView控件。GridView当选定行的SelectedValue利用指定给GridView控件的DataKeyNames值被赋值。别的,为了从控件取得数据,你还可使用来自QuerySring,cookies和良多别的选项的数据。
<%@PageLanguage="C#"%>
<html>
<headid="Head1"runat="server">
<title>Master-DetailPageExample</title>
</head><body>
<formid="frmMasterDetail"runat="server">
<b>Selectacity:</b>
<asp:DropDownListID="DropDownList1"DataSourceID="SqlDataSource2"AutoPostBack="true"
DataTextField="City"runat="server"/>
<asp:SqlDataSourceID="SqlDataSource2"runat="server"SelectCommand="SELECTDISTINCTCityFROMEmployees"
ConnectionString="Server=localhost;Database=Northwind;Trusted_Connection=true"/>
<asp:GridViewID="GridView1"AllowSorting="True"AllowPaging="True"runat="server"
DataSourceID="SqlDataSource1"DataKeyNames="EmployeeID"
AutoGenerateColumns="False"Width="427px"PageSize="10"BackColor="#c0c0c0"
BorderColor="black"BorderStyle="Groove"BorderWidth="5"Caption="GridViewExample">
<SelectedRowStyleBackColor="yellow"/>
<Columns>
<asp:CommandFieldShowSelectButton="True"/>
<asp:BoundFieldDataField="EmployeeID"HeaderText="ID"ReadOnly="True"SortExpression="EmployeeID"/>
<asp:BoundFieldDataField="LastName"HeaderText="Last"SortExpression="LastName"/>
<asp:BoundFieldDataField="FirstName"HeaderText="First"SortExpression="FirstName"/>
<asp:BoundFieldDataField="Region"HeaderText="Region"SortExpression="Region"/>
</Columns>
</asp:GridView>
<asp:SqlDataSourceID="SqlDataSource1"runat="server"SelectCommand="SELECTEmployeeID,LastName,FirstName,RegionFROMEmployeesWHERE(City=@City)"
ConnectionString="Server=localhost;Database=Northwind;Trusted_Connection=true">
<SelectParameters>
<asp:ControlParameterControlID="DropDownList1"Name="City"PropertyName="SelectedValue"Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
<asp:DetailsViewAutoGenerateRows="False"DataKeyNames="EmployeeID"
DataSourceID="SqlDataSource3"
HeaderText="EmployeeDetails"ID="DetailsView1"runat="server"Width="275px">
<Fields>
<asp:BoundFieldDataField="EmployeeID"HeaderText="ID"ReadOnly="True"/>
<asp:BoundFieldDataField="LastName"HeaderText="Last"/>
<asp:BoundFieldDataField="FirstName"HeaderText="First"/>
<asp:BoundFieldDataField="Region"HeaderText="Region"/>
</Fields>
</asp:DetailsView>
<asp:SqlDataSourceConnectionString="Server=localhost;Database=Northwind;Trusted_Connection=true"ID="SqlDataSource3"runat="server"SelectCommand="SELECTEmployeeID,LastName,FirstName,RegionFROMEmployeesWHERE(EmployeeID=@EmployeeID)">
<SelectParameters>
<asp:ControlParameterControlID="GridView1"Name="EmployeeID"PropertyName="SelectedValue"Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
</form></body></html>中包含了具有三个控件和用于数据加载的工具全体源代码,本例演示了利用数据控件利用数据而不必编写任何代码。每一个控件供应了大批的事务可用来为这些事务编写代码完成本文的一样义务和更多别的义务。
更多壮大接口
ASP.NET2.0包含大批以GridView为代表的数据控件,我们利用这些控件能够很简单地显现来自后端数据源中的数据。你还能够将GridView控件和别的的像DetailsView或FormView控件分离起来利用来利用更多的数据工具,和在一个表单域或独自一个表单中显现要编纂或扫瞄的数据。
我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高java的运行效率。只是将java源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。 主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗? 现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
页:
[1]