[共享]想到一个简单的办法实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 srz007 的 blog

以前我从来都没用过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();
      ..........
    }

 

本文关键:[共享]想到一个简单的办法实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top