谁可相欹 发表于 2015-1-16 22:32:36

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语言。

再现理想 发表于 2015-1-19 16:22:18

Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。

活着的死人 发表于 2015-1-19 16:22:19

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

仓酷云 发表于 2015-1-24 15:16:08

现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。

精灵巫婆 发表于 2015-2-1 18:29:17

可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。

若相依 发表于 2015-2-7 13:29:22

能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。

冷月葬花魂 发表于 2015-2-22 02:43:35

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

老尸 发表于 2015-3-6 22:32:44

同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。

若天明 发表于 2015-3-13 22:10:41

PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。

小魔女 发表于 2015-3-20 20:50:07

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
页: [1]
查看完整版本: ASP.NET网页编程之ASP.NET在DataGrid疾速增加新行