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 --------------------编程问答--------------------
说的是啊 --------------------编程问答--------------------
<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