zoukankan      html  css  js  c++  java
  • 在GridView中自定按钮,实现删除和更新

    用的都是笨办法,看了二个小时看搞明白
    本来算删除和更新都用RowCommand来实现的,后来发现,在RowCommand中无法取到自定的输入框中的值,只得把更新换到RowUpdating中去实现了,但RowUpdating中又没有CommandArgument属性,只好放一个HiddenField来做参数存储。实属无奈,不知道好用的方法应该是怎么样,有没有高手可以指点指点
    在GridView中操作数据方法:
    1.删除:

         在模版中建一个Button,设置其CommandType="del"、CommandArgument="<%#Eval("ID")%>"
         在GridView的RowCommand事件中判断CommandType,以CommandArgument为参数删除数据

    2.更新:

         在模版中建一个Button,设置其CommandType="update"
         建一个HiddenField,设置为Value="<%#Eval("ID")%>"
         在GridView的Rowupdating事件中,先用e.RowIndex找到当前行的索引,然后用FindControl取到值,更新

    3.更新2:

         另一个方法:在“编辑”按钮的CommandArgument中写<%# ((GridViewRow) Container).RowIndex %>
         在GridView的RowCommand事件中,就可以使用CommandArgument来获取当前行的索引,然后处理。
         以下代码中还没有使用这种方法来实现

        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        
    {
            
    if (e.CommandName == "del")
            
    {
                
    int index = Convert.ToInt32(e.CommandArgument);
                
    string sqlcmd = "delete from Admin where id =" + index;
                userSql.db.ExecuteNonQuery(sqlcmd);
                DataBinded();
            }

        }

        
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        
    {
            
    int index2 = e.RowIndex;
            
    string txtName = ((TextBox)this.GridView1.Rows[index2].Cells[2].FindControl("txtAdminname")).Text;
            
    string txtPass = ((TextBox)this.GridView1.Rows[index2].Cells[2].FindControl("txtAdminPassword")).Text;
            
    int id = Convert.ToInt32(((HiddenField)this.GridView1.Rows[index2].Cells[2].FindControl("HiddenID")).Value);
            
    string sqlcmd = "update [Admin] set [Adminname]=@Adminname,[AdminPassword]=@AdminPassowrd where [id]=@id";
            SqlParameter[] param 
    = {
                
    new SqlParameter("@Adminname",txtName),
                
    new SqlParameter("@AdminPassowrd",txtPass),
                
    new SqlParameter("@id",id),
            }
    ;
            userSql.db.ExecuteNonQuery(sqlcmd, param);
            DataBinded();
        }
  • 相关阅读:
    UNIX网络编程之旅配置unp.h头文件环境[ 转]
    C++著名程序库
    开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
    网络库介绍
    置顶问题
    最近做的一个项目
    Storm 遇到问题?
    海量算法视频下载
    Quartz.NET作业调度框架详解
    c#中的委托、事件、Func、Predicate、Observer设计模式以及其他
  • 原文地址:https://www.cnblogs.com/yeagen/p/1331475.html
Copyright © 2011-2022 走看看