ASP.NET网页编程之ASP.NET在DataGrid疾速增加新行
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。asp.net|datagridASP.netDataGrid为我们供应的内建的纪录行编纂功效,可是没有供应内建的增加新行的功效。一个举措就是:在DataTable中增加新行,然后再从头绑定到DataGrid,这个举措可行,但在更新前必要举行确认,大概会发生空行。别的一个办理举措就是:使用DataGridfootertemplate来供应一个空的行,如许既能够进步速率,也能够制止别的办法带来的不敷。为了为扫瞄者供应一个空行,我们利用DataGrid的FooterTemplate,我们间接在FooterTemplate里增加文本框,如许能够制止不用要的操纵:好比点击“编纂”按钮等。如许也能够削减来去数据提交的次数。我们这里仍旧LinkButton(拔出),并设置CommandName属性为“Insert”,这个CommandName在DataGrid的ItemCommand事务中,确保只要用户点击了“Insert”LinkButton才增加纪录。增加到数据库的办法是很复杂的。
上面的这个例子供应了DataGrid疾速增加新行的功效。aspx代码和CoheBehind代码分离以下,注重变动数据录毗连字符串:
检察例子
InsertableDataGrid.aspx
<%@PageLanguage="<ahref="http://dev.21tx.com/language/vb/"target="_blank">VB</a>"AutoEventWireup="false"Codebehind="InsertableDataGrid.aspx.vb"Inherits="aspx<ahref="http://dev.21tx.com/web/"target="_blank">Web</a>.InserTableDataGrid"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<metaname="GENERATOR"content="MicrosoftVisualStudio.NET7.0">
<metaname="CODE_LANGUAGE"content="VisualBasic7.0">
<metaname="vs_defaultClientScript"content="<ahref="http://dev.21tx.com/web/javascript/"target="_blank">JavaScript</a>">
<metaname="vs_targetSchema"content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<bodyMS_POSITIONING="GridLayout">
<formid="Form1"method="post"runat="server">
<asp:DataGridid="DataGrid1"runat="server"BorderColor="#CC9966"BorderStyle="None"
BorderWidth="1px"BackColor="White"CellPadding="4"ShowFooter="True"AutoGenerateColumns="False">
<SelectedItemStyleFont-Bold="True"ForeColor="#663399"BackColor="#FFCC66"></SelectedItemStyle>
<ItemStyleForeColor="#330099"BackColor="White"></ItemStyle>
<HeaderStyleFont-Bold="True"ForeColor="#FFFFCC"BackColor="#990000"></HeaderStyle>
<FooterStyleForeColor="#330099"BackColor="#FFFFCC"></FooterStyle>
<Columns>
<asp:TemplateColumnHeaderText="EmployeeID">
<ItemTemplate>
<asp:Labelid=Label3runat="server"Text=<%#DataBinder.Eval(Container,"DataItem.employeeid")%>>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:LinkButtonid="LinkButton1"runat="server"CommandName="Insert">Insert</asp:LinkButton>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBoxid=TextBox5runat="server"Text=<%#DataBinder.Eval(Container,"DataItem.employeeid")%>>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnHeaderText="LastName">
<ItemTemplate>
<asp:Labelid=Label1runat="server"Text=<%#DataBinder.Eval(Container,"DataItem.lastname")%>>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBoxid="TextBox2"runat="server"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBoxid="TextBox1"runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnHeaderText="FirstName">
<ItemTemplate>
<asp:Labelid=Label2runat="server"Text=<%#DataBinder.Eval(Container,"DataItem.firstname")%>>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBoxid="TextBox4"runat="server"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBoxid="TextBox3"runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyleHorizontalAlign="Center"ForeColor="#330099"BackColor="#FFFFCC"></PagerStyle>
</asp:DataGrid>
</form>
</body>
</HTML>
InsertableDataGrid.aspx.vb
ImportsSystem.Data
ImportsSystem.Data.SqlClient
PublicClassInserTableDataGrid
InheritsSystem.Web.UI.Page
ProtectedWithEventsDataGrid1AsSystem.Web.UI.WebControls.DataGrid
#Region"WebFormDesignerGeneratedCode"
ThiscallisrequiredbytheWebFormDesigner.
<System.Diagnostics.DebuggerStepThrough()>PrivateSubInitializeComponent()
EndSub
PrivateSubPage_Init(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Init
CODEGEN:ThismethodcallisrequiredbytheWebFormDesigner
Donotmodifyitusingthecodeeditor.
InitializeComponent()
EndSub
#EndRegion
DimconnstrAsString="IntegratedSecurity=SSPI;UserID=sa;InitialCatalog=NorthWind;DataSource=.
etsdk"
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
IfNotPage.IsPostBackThen
BindGrid()
EndIf
EndSub
SubBindGrid()
DimcnnAsNewSqlConnection(connstr)
DimdaAsNewSqlDataAdapter("selectemployeeid,lastname,firstnamefromemployees",cnn)
DimdsAsNewDataSet()
da.Fill(ds,"employees")
DataGrid1.DataSource=ds
DataGrid1.DataBind()
EndSub
PrivateSubDataGrid1_ItemCommand(ByValsourceAsObject,ByValeAsSystem.Web.UI.WebControls.DataGridCommandEventArgs)_
HandlesDataGrid1.ItemCommand
Ife.CommandName="Insert"Then
DimcnnAsNewSqlConnection(connstr)
Dimt1AsTextBox=e.Item.FindControl("textbox2")
Dimt2AsTextBox=e.Item.FindControl("textbox4")
cnn.Open()
DimcmdAsNewSqlCommand("insertintoemployees(lastname,firstname)values("&t1.Text&","&t2.Text&")",cnn)
cmd.ExecuteNonQuery()
cnn.Close()
BindGrid()
EndIf
EndSub
EndClass它有很多缺点的,有兴趣可以到网上去搜索一下。于是微软有发明了“下一代”C++:C++/CLI语言,这个可以解决在.NETFramework中,托管C++产生的问题。在《程序员》杂志上,lippman和李建中合作连载介绍了C++/CLI语言。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。 现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。 我的意思是.net好用,从功能上来说比JAVA强还是很明显的。 同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。 PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
页:
[1]