仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 650|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET编程:再议ASP.NET DataGrid控件中的“增加新...

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不可能天天有学习.net),我一同学说,你应该早就有作品啦。我惶惶然……  提及在DataGrid中增加新行,ASP.NET开辟的年夜牛人物:DinoEsposito,他的《构建WEB办理计划--使用ASP.NET和ADO.NET》一书中供应了和以上两位相似的办法,可是Dino又加了些功效,起首就是”增加新行“这个LinkButton放在页脚,同时这个LinkButton在分页到最初一页时才启用,由于在其他页面增加新行是不成取的;其次是增加的行假如引发分页,就切换到新页并进进此行的编纂形式。

  前一段工夫,我也利用了这个功效,发明仍旧存在两个成绩:

  1.点击”增加新行“按钮编纂新行时,假如再次点击”增加新行“的话,这个刚增加的新行会酿成空缺,编纂形式会进进别的的新行。

  2.在翻页时DataGrid的EditItemIndex没有恢复成-1,会形成其他页面不异索引的行也进进编纂形式。
 
  因而就操刀稍稍修正了一下,办理了这两个成绩,最后的效果是如许的:

  图一:不在最初一页时,增加新行按钮不成用




  图二:在最初一页时,按钮才可用




  图三:当新加行进进编纂形式后,按钮再次不成点击,作废后此新增行会删除,恢复到图二




  页脚模板中的LinkButton:
以下为援用的内容:
<FooterTemplate>
<asp:LinkButtonid=lbAddNewRowrunat="server"CommandName="AddNewRow"Enabled="<%#IsEnableAddNewRow()%>">增加新行

</asp:LinkButton>
</FooterTemplate>



  页面代码中IsEnableAddNewRow办法代码:
以下为援用的内容:
1protectedboolIsEnableAddNewRow()
2{
3//只要最初一页其实不在编纂形式时才启用增加新行功效
4return(dgData.CurrentPageIndex==dgData.PageCount-1&&dgData.EditItemIndex==-1);
5}
  页面代码中ItemCommand事务代码:

以下为援用的内容:
1privatevoiddgData_ItemCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgse)
2{
3if(e.CommandName=="AddNewRow")
4{
5//先在数据源增加新行,假如有主键字段,还必要思索主键字段的数据天生和最初更新时的提交
6LoadData();
7DataRownewRow=dsData.Tables[0].NewRow();
8dsData.Tables[0].Rows.Add(newRow);
9dgData.DataSource=dsData;
10Session["myData"]=dsData;
11//判别增加此行后是不是应当换页
12intcurrentIndex=dgData.Items.Count;
13if(currentIndex>=dgData.PageSize)
14{
15dgData.CurrentPageIndex++;
16currentIndex=0;
17}
18dgData.EditItemIndex=currentIndex;
19dgData.DataBind();
20dgData.Items[currentIndex].Attributes.Add("IsNewItem","True");
21}
22}
  CancelCommand事务代码:
以下为援用的内容:
1privatevoiddgData_CancelCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgse)
2{
3LoadData();
4//假如在新增行选择作废,则回绝增加此行
5if(e.Item.Attributes["IsNewItem"]!=null&&e.Item.Attributes["IsNewItem"]=="True")
6{
7dsData.RejectChanges();
8Session["myData"]=dsData;
9}
10dgData.EditItemIndex=-1;
11BindGrid(dgData.CurrentPageIndex);
12}

  以上的例子我写了一个Demo,打包好的办理计划文件能够在这里下载(注重修正Web.config文件中的毗连字符串,数据会见代码在DataAccess类中)。

  在写这篇Post的途中,有伴侣倡议在DataGrid的页脚为每一个字段安排一个文本框,然后再安排一个“增加此行”按钮,点击按钮后便可将行增加到DataGrid中,假如页脚没有做其他用处的话,这类体例也不掉为较好的办理计划。

Java欺骗了我们那么多年,如今的多核时代,我认为它气数已尽!
老尸 该用户已被删除
沙发
发表于 2015-1-19 15:36:25 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
小魔女 该用户已被删除
板凳
发表于 2015-1-26 20:03:10 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
深爱那片海 该用户已被删除
地板
发表于 2015-2-4 20:26:29 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
爱飞 该用户已被删除
5#
发表于 2015-2-10 07:10:38 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
小女巫 该用户已被删除
6#
发表于 2015-3-1 03:06:52 | 只看该作者
市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。
小妖女 该用户已被删除
7#
发表于 2015-3-10 12:30:41 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
再现理想 该用户已被删除
8#
发表于 2015-3-17 07:09:59 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
因胸联盟 该用户已被删除
9#
发表于 2015-3-24 01:27:05 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-29 12:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表