实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

以前我从来都没用过datagrid,因为觉得这个东东效率比较低,今天要做个比较简单的东西(字段很少),但需要添加修改删除,所以就想试一下datagrid,修改、删除都做完后就剩下添加了,在csdn上查了一下,有不少相关的帖子,但基本都是用模板列解决的,我觉得比较麻烦,突然想起来以前一个解决问题的方法,和datagrid结合用的话就能搞定新增数据的问题,试了一下,还是很简单的,所以发上来让不知道这种方法的朋友也轻松的做datagrid的增加数据。

这种方法就是利用了footertext这个属性,在footertext中可以这样写

footertext="<input type=text name=Class>"

运行的时候这就是一个输入框,类似的下面就是一个按钮

footertext="<input type=button value='增加'>"

输入和提交都有了,下面就是把数据提交到数据库中,我要利用一个隐藏的服务器控件

<asp:linkbutton id="AddNew" runat="server"></asp:linkbutton>

来帮忙(这个就是以前解决一个问题时用的方法),从工具箱里拽一个linkbutton出来,在它的属性中把Text属性设为空(也就是让运行的时候看不见),然后双击这个linkbutton(也就是增加它的事件关联),你可以在创建好的事件里面写你要往数据库中添加的数据

接受提交过来的数据要这样写Request.Form["Class"].ToString()

接下来是最主要的部分了,在页面中添加

<script language="javascript">

function AddNew()

{

__doPostBack('AddNew','');

}

</script>

然后把datagrid中foot里含有按钮的那列的footertext属性改成下面这样

footertext="<input type=button value='增加' onclick='javascript:return AddNew();'>"

这样就可以实现datagrid带增加新数据的功能了

下面是我运行通过的代码:

.aspx

<script language="javascript">

function AddNew()

{

__doPostBack('AddNew','');

//alert("dddddd");

}

</script>

<form id="Form1" method="post" runat="server">

<asp:datagrid id="dgEnginePrice" runat="server" autogeneratecolumns="False" pagesize="100" width="100%" showfooter="True">

<columns>

<asp:boundcolumn datafield="ID" readonly="True" headertext="编号" footertext="新增"></asp:boundcolumn>

<asp:boundcolumn datafield="Class" headertext="类别" footertext="<input type=text name=Class>"></asp:boundcolumn>

<asp:boundcolumn datafield="Price1" headertext="价格1" footertext="<input type=text name=Price1>"></asp:boundcolumn>

<asp:boundcolumn datafield="Price2" headertext="价格2" footertext="<input type=text name=Price2>"></asp:boundcolumn>

<asp:editcommandcolumn buttontype="LinkButton" updatetext="更新" headertext="操作" canceltext="取消" edittext="编辑" footertext="<input type=button value='增加' onclick='javascript:return AddNew();'>"></asp:editcommandcolumn>

<asp:buttoncolumn text="删除" headertext="删除" commandname="Delete"></asp:buttoncolumn>

</columns>

</asp:datagrid><asp:linkbutton id="AddNew" runat="server"></asp:linkbutton>

</form>

.cs

private void InitializeComponent()

{

this.AddNew.Click += new System.EventHandler(this.AddNew_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

private void AddNew_Click(object sender, System.EventArgs e)

{

数据库字段 = Request.Form["Class"].ToString();

数据库字段 = Request.Form["Price1"].ToString();

数据库字段 = Request.Form["Price2"].ToString();

..........

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航