实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题
2005-10-20 10:51
621 查看
以前我从来都没用过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();
..........
}
这种方法就是利用了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();
..........
}
相关文章推荐
- 实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题
- 实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题
- 分布式一致性解决分布式一致性问题用二阶段提交一个没有高可用组件的数据库不能依靠外部软件来实现高可用
- 解决X5中一个保存按钮不能同时保存数据问题(多个数据集中其中某个数据集的store-type:simple 时,不能同时保存)
- 解决SharePoint中自定义新增和编辑List的页面时"增加附件"工作栏不能使用的问题
- 安装office2007之windows installer 服务不能更新一个或多个受保护的windows文件问题解决
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- Java NIO 实现进程通讯,解决用户自定义数据的组包和拆分粘包的问题
- SQL删除数据因外键关联导致花费时间太长----(外键列上增加索引解决此问题)
- 一个标点符号解决WordPress在Windows+IIS主机下Tags不能用中文的问题
- 解决Android Studio中某一个Module不能启动的问题
- 解决Python自带的json序列化工具不能序列化datetime类型数据问题
- 终于解决了一个问题--如何在数据绑定时不让combox控件触发SelectedIndexChanged事件
- Spring、Hibernate 数据不能插入到数据库问题解决
- 解决导入数据时提示分区数据不能导入问题
- 解决ExtJs分页grid中load数据为空时不能刷新 Ext.PagingToolbar信息的问题
- 一个解决OnNcLButtonUp不能响应消息问题的更好办法
- 大数据开发如何规避细节问题,换一个角度来解决常见的细节问题
- 实现hive proxy5-数据目录权限问题解决 推荐
- 解决WinForm中ComboBox控件的“设置"DataSourse”属性后无法修改项集合”以及两个不相关联的ComboxBox控件实现数据列表显示不可实现的问题