asp.net GridView自定义模板编辑 更新 取消 删除

之前用gridview控件都是用默认的编辑啊更新等默认功能,今天上网找了些资料,尝试了下用自定义模板实现编辑更新取消删除功能。以下是我最近做的眼镜网后台留言列表,实例图片如下:

点击编辑时出现textbox和checkbox:

以下为各文件的代码,其中红色为应注意地方.蓝色为文件,有理解错误的地方请高手指出,小弟感激不尽

gridview.asp教程x文件

 <asp:gridview id="gridview1" runat="server" datakeynames="id"  cellpadding="5" width="700px" autogeneratecolumns="false" 
       
         onrowdeleting="gridview1_ondeletecommand">
            <columns>
               
                <asp:templatefield headertext="">
                     <itemtemplate>
                         <asp:button id="delete" runat="server" text="删除" commandname="delete" />
                     </itemtemplate>
                </asp:templatefield>
                <asp:templatefield headertext="用户">
                     <itemtemplate>
                     <%# eval("name") %>
                     </itemtemplate>
                </asp:templatefield>
                <asp:templatefield headertext="留言">
                     <itemtemplate>
                     <%# eval("question") %>
                     </itemtemplate>
                </asp:templatefield>
                <asp:templatefield headertext="回复">
                     <itemtemplate>
                     <%# eval("answer") %>
                     </itemtemplate>
                     <edititemtemplate>
                         <asp:textbox id="txtanswer" runat="server" text='<%# eval("answer") %>'></asp:textbox>
                     </edititemtemplate>
                </asp:templatefield>
              
                <asp:templatefield headertext="审核">
                     <itemtemplate>
                         <%# eval("pass") %>
                     </itemtemplate>
                     <edititemtemplate>
                     <asp:checkbox id="pass_check" runat="server"  />
                     </edititemtemplate>
                </asp:templatefield>
                <asp:templatefield headertext="">
                     <itemtemplate>
                         <asp:button runat="server" text="编辑" commandname="edit" />
                     </itemtemplate>
                     <edititemtemplate>
                          <asp:button runat="server" text="更新"  commandname="update" />
                          <asp:button id="cancel" runat="server" text="取消" commandname="cancel" />
                     </edititemtemplate>
                </asp:templatefield> 
            </columns>
      <headerstyle backcolor="#4380cc" forecolor="white" font-names="幼圆" />
      <rowstyle backcolor="#eff3fb" horizontalalign="center" font-size="15px" />
      <alternatingrowstyle backcolor="#dcdedc" />
      <pagerstyle horizontalalign="center"  />
        </asp:gridview>

mytry.cs文件

1.public datatable getdate(){返回dataset}

2.public void update(string answer,int pass,string pk){}          //更新

3.public void delete(string strid){}                                          //删除

gridview.aspx.cs文件

mytry objmytry = new mytry();  //实例化

void binddr()

{

this.gridview1.datasource = objmytry.getdate();
this.gridview1.databind();                                            //数据绑定

}

protected void gridview1_onrowcommand(object sender, gridviewediteventargs e)  //触发编辑事件
    {
        gridview1.editindex = e.neweditindex;                      //切换到编辑页
        binddr();                                                                    //数据绑定
    }
    protected void gridview1_oncancelcommand(object sender, gridviewcancelediteventargs e)//触发取消事件
    {
        gridview1.editindex = -1;                                         //后退一页
        binddr();                                                                    //数据绑定
    }

    protected void gridview1_onupdatecommand(object sender, gridviewupdateeventargs e)  //触发更新事件
    {
        string pk = gridview1.datakeys[e.rowindex].value.tostring();         //获取当前行主键id
        gridviewrow gvr = gridview1.rows[e.rowindex];                              //实例化一行

        string stranswer = ((textbox)gvr.findcontrol("txtanswer")).text;          //获取textbox里面的值
      

        try
        {
            bool is_checked = ((checkbox)gvr.findcontrol("pass_check")).checked;   //获取checkbox的值
            if (is_checked == true)
            {
               
                int a=convert.toint32(is_checked);                 //把bool型转为整型
                objmytry.update(stranswer, a  , pk);
                string c = request.urlreferrer.tostring();         
                response.redirect(c);                                        //返回上次页面
            }
            else
            {

                int b = convert.toint32(is_checked);

               objmytry.update(stranswer, b , pk);
                string c = request.urlreferrer.tostring();      
                response.redirect(c );
            }
            
           
        }
        catch (exception ex)
        {
            alter(ex.message);
        }
    }

    protected void gridview1_ondeletecommand(object sender, gridviewdeleteeventargs e)   //触发删除事件
    {
          string pk = gridview1.datakeys[e.rowindex].value.tostring();
          try
          {
              objmytry.delete(pk);
              alter("删除成功!");
              binddr();
          }
          catch (exception ex)
          {
              alter(ex.message);
          }
    }

    private void alter(string strmessage)                              //弹出对话框
    {
        response.write("<script>alert('" + strmessage + "');</script>");
    }

时间: 2024-10-01 07:33:19

asp.net GridView自定义模板编辑 更新 取消 删除的相关文章

asp.net gridview实现全选,反选与删除记录的操作代码_实用技巧

gridview全选操作 复制代码 代码如下: 'columns'=>array( array( 'class'=>'CCheckBoxColumn', //'header'=>'全选', //'value'=>'$data->id', //'checked'=>'true', 'htmlOptions'=>array( 'width'=>'30', 'style'=>'text-align:center', ), ), 复制代码 代码如下: <

asp.net gridview自带编辑,更新按钮点击无反应,取消按钮却正常

问题描述 在gridview里启用了自带的编辑和删除,点击编辑后,会有更新/取消两个按钮,点击更新毫无反应,但是点击取消,结束编辑的功能能正常.RowEditing.RowCancelingEdit.RowUpdating都设置好了同样的在其他页面都能正常,但是就是在这一个页面更新按钮点击没反应,求大神帮忙,谢谢! 解决方案 解决方案二:页面1(gridview自带编辑里的更新点击无反应),我查看了下前端,发现当鼠标移动到更新上去时,浏览器左下角的显示为如上图所示时,更新就点击没反应页面2(正常

asp.net中gridview的查询、分页、编辑更新、删除的实例代码_实用技巧

1.A,运行效果图 1.B,源代码/App_Data/sql-basic.sql 复制代码 代码如下: use mastergoif exists(select * from sysdatabases where name='db1')begin    drop database db1endgocreate database db1gouse db1go-- ================================-- ylb:1,类别表-- =====================

GridView选中,编辑,取消,删除总是出错求高手解答!

问题描述 --类及方法usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Data.SqlClient;usingSystem.Data;namespaceWebApplication1.Class__methods{publicclassCommon{privateSqlConnectioncon=newSqlConnection();privateSqlCommand

asp.net gridview自定义value值的代码_实用技巧

model里: 复制代码 代码如下: public function item($items,$name){ $returnValue=''; foreach($items as $n=>$item){ if(isset($this->$name)){ if($n==$this->$name){ $returnValue=$item; } } } return $returnValue; } view里: 复制代码 代码如下: array('name'=>'isPass','val

asp.net gridview多页时的批量删除_实用技巧

book_admin.aspx 复制代码 代码如下: <asp:GridView ID="grwBook" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="false" AllowPaging="true" DataKeyNames=

GridView嵌套gridview,实现子(从)gridview的编辑更新等操作

问题描述 如何在子gridview中实现编辑更新等操作?每次更新一条记录.删除已完成.主要代码部分如下.前端<asp:GridViewID="gvclassexam"runat="server"onrowdatabound="gvclassexam_RowDataBound"AutoGenerateColumns="False"><Columns><asp:TemplateFieldHeaderT

asp.net gridview 72般绝技第1/2页_实用技巧

GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合GridView和CheckBox结合鼠标移到GridView某一行时改变该行的背景色方法一鼠标移到GridView某一行时改变该行的背景色方法二GridView实现删除时弹出确认对话框GridView实现自动编号GridView实现自定义时间货币等字符串格式GridView实现用"..."代替超长字符串GridView一般换行与强制换行

ASP进阶之文章在线管理更新(十)

在线 ASP进阶之文章在线管理更新--文章删除篇 作者:沙滩小子 上一节我们介绍了文章管理的主页面,而这里的主页面只是显示了相关的连接而已,要是没有相关的程序来执行,那么也只是空连接而已,并不会显示出它的具体功用,而文章的在线删除是本系统不可缺少的一部分,虽然它的程序很简单,但是还是有必要为大家介绍一下. 在ASP中,对数据库的操作有更新(update).删除(delete)等操作,在本系统中对文章的删除就是利用了DELETE来进行文章的删除操作的,下面就为大家介绍本删除程序(delete.as