首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

GridView RowCommand中的e.CommandArgument解决办法

2012-05-04 
GridView RowCommand中的e.CommandArgumentC# code前台:asp:ButtonField CommandNameupdate HeaderTex

GridView RowCommand中的e.CommandArgument

C# code
前台:<asp:ButtonField CommandName="update" HeaderText="操作" Text="编辑" />后台:protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)    {        this.gv.PageIndex = e.NewPageIndex;        this.gv.DataBind();        Bind();    }protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)    {        int index = Convert.ToInt32(e.CommandArgument);         if (e.CommandName == "update")        {            int i = int.Parse(this.gv.DataKeys[index].Value.ToString());            Label2.Text = i.ToString();//传递所点击绑定数据行的id值            Label lab = (Label)(this.gv.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].FindControl("Label1"));            string str = lab.Text;            this.tTitle.Text = this.gv.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text.Trim();            this.tContent.Text = str;        }}


点击下一页出现如图所示的错误。请教高手是哪里有问题,谢谢!

[解决办法]
<asp:ButtonField CommandName="update" HeaderText="操作" Text="编辑" />
应该转成模板列再把数据绑定到CommandArgument='<%# Bind("你的值") %>'上
[解决办法]
if (e.CommandName == "update")
{
int index = Convert.ToInt32(e.CommandArgument); int i = int.Parse(this.gv.DataKeys[index].Value.ToString());
Label2.Text = i.ToString();//传递所点击绑定数据行的id值
Label lab = (Label)(this.gv.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].FindControl("Label1"));
string str = lab.Text;

this.tTitle.Text = this.gv.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text.Trim();
this.tContent.Text = str;
}

[解决办法]
<asp:ButtonField CommandName="update" CommandArgument='<%# Bind("你的值") %>' HeaderText="操作" Text="编辑" />

这样写!
[解决办法]
探讨
C# code

前台:<asp:ButtonField CommandName="update" HeaderText="操作" Text="编辑" />
后台:
protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.gv.PageIndex = e.NewP……

[解决办法]
探讨
引用:
<asp:ButtonField CommandName="update" CommandArgument='<%# Bind("你的值") %>' HeaderText="操作" Text="编辑" />

这样写!


ButtonField中没有CommandArgument这个属性。

[解决办法]
GridViewRow grow = (e.CommandSource as Button).Parent.Parent as GridViewRow;
Label lb= grow.Cells[要查找控件所在列表中的列的索引].FindControl("Label1") as Label;
//Label lb = gvs.Rows[grow.RowIndex].Cells[要查找控件所在列表中的列的索引].FindControl("Label1") as Label;

热点排行