当前位置:编程学习 > C#/ASP.NET >>

GridView_RowCommand里的怎么对数据行进行操作

比如说我要删除这行数据! --------------------编程问答-------------------- 根据命令参数来确定命令来自那一个按钮再进行什么操作。 --------------------编程问答-------------------- 比如我的按钮的CommandName == “DEL”
删除方法是BP。DEL(INT id);
这个ID 是本行的第一个字段
怎么来获取ID的值 --------------------编程问答-------------------- 先判断
if(e.CommandName=="删除")
{
   //删除这行的数据.行号e.CommandArgument取得.
} --------------------编程问答-------------------- int index = Convert.ToInt32(e.CommandArgument.ToString().Trim());
        if (e.CommandName == "按钮名")
        {
            LinkButton myButton = (LinkButton)this.gvFindJob.Rows[index].FindControl("按钮名");
           //删除操作
        } --------------------编程问答-------------------- 但是我用了,报错·调试,里面是空值 --------------------编程问答-------------------- 你把ID也绑定到e.CommandArgument
操作时取出就可以了 --------------------编程问答--------------------
这个ID 是本行的第一个字段
怎么来获取ID的值

------------------
ID的值
gridview.Rows[Convert.ToInt32(e.CommandArgument)].Cell[0].Text --------------------编程问答-------------------- e.CommandArgument里的值是空的 --------------------编程问答-------------------- 但是我用了,报错·调试,里面是空值

--------------------
那是你没绑定CommandArgument属性... --------------------编程问答-------------------- 绑定了就不可能为空嘛`小兄弟!再找找别的原因page_load是不是判断了ispostback --------------------编程问答-------------------- 那是你没绑定CommandArgument,所以里面是""空值得给他赋值 --------------------编程问答-------------------- 肯定判断了ISPOSTBACK
CommandArgument属性需要绑定吗? --------------------编程问答-------------------- "引用"
绑定:
(Button)GridViewID.Row.FindControl("ButtonID").CommandArgument =GridViewID.Row.RowIndex
或完全手动绑定:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Button btn = e.Row.FindControl("btnDel") as Button;
                btn.CommandArgument = e.Row.RowIndex.ToString();
            }
        }
--------------------编程问答-------------------- 一般绑定他的ID号,但是得设成字增长ID,起始还得是0
CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Com_ZID") %> ' --------------------编程问答-------------------- http://shilei831115.blog.hexun.com/7783567_d.html --------------------编程问答-------------------- 鸟的比2003麻烦多了,还要绑这个绑那个 --------------------编程问答-------------------- 呵呵,DataList在这点上好使多了,既有e.Item又有e.CommandName --------------------编程问答-------------------- 完了,绑了ID把数据全删了 --------------------编程问答-------------------- 主键设为DataKeyField --------------------编程问答-------------------- 楼主早贴自己的代码早解决了 --------------------编程问答-------------------- 关注~
--------------------编程问答-------------------- 梆定前台的
<asp:button id="btn" commandname="Del" commandargument='<#绑定数据#>' ruant="server"/>

int index = int.Parse(e.CommandArgument.ToString());
        if (e.CommandName == "按钮名")
        {
           sql = ""
           //删除操作
        }
--------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 我也是第一次用到这个东西,不太会呦。 --------------------编程问答-------------------- 答案都有了,楼主仔细检查下自己的代码吧 --------------------编程问答-------------------- GridViewRow row = (GridViewRow)((Control)e.CommandSource).NamingContainer;

获取当前行
--------------------编程问答-------------------- http://blog.csdn.net/xianfajushi/archive/2008/11/30/3413317.aspx --------------------编程问答--------------------
引用 20 楼 amandag 的回复:
楼主早贴自己的代码早解决了

说的是啊 --------------------编程问答--------------------


<asp:LinkButton ID="lbtnHigh" OnCommand="lbtnMsg_OnCommand" CommandArgument='<%# Eval("MID") %>' CommandName="SetHigh" runat="server">优先显示</asp:LinkButton>

<asp:LinkButton ID="lbtnShow" OnCommand="lbtnMsg_OnCommand" CommandArgument='<%# Eval("MID") %>' CommandName="SetShow" runat="server">查看</asp:LinkButton>

<asp:LinkButton ID="lbtnPass" OnCommand="lbtnMsg_OnCommand" CommandArgument='<%# Eval("MID") %>' CommandName="SetPass" runat="server">审核</asp:LinkButton>

<asp:LinkButton ID="lbtnDel" OnCommand="lbtnMsg_OnCommand" CommandArgument='<%# Eval("MID") %>' CommandName="SetDel" runat="server" OnClientClick='return confirm("确定删除吗?")'>删除</asp:LinkButton>



 protected void lbtnMsg_OnCommand(object sender, CommandEventArgs e)
    {
        int id = Convert.ToInt32(e.CommandArgument);
        string cmdName = e.CommandName.ToString();
        switch (cmdName)
        {
            case "SetDel"://删除
                DelMsgByID(id);
                break;
            case "SetShow"://查看
                ShowMContentByID(id);
                break;
            case "SetHigh"://设置显示优先
                SetHighByMID(id);
                break;
            case "SetPass"://审核通过
                SetPassByMID(id);
                break;
            default:
                break;
        }
    }

这里就像一组开关一样,用同样一条线,完成不同的操作
用同一个方法事件,完成不同的数据操作,关键在这个CommandArgument
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,