如何从gridview中的按钮获取click事件

时间:2010-02-16 13:42:01

标签: gridview

我正在开发一个app,我需要在gridview中获取按钮的click事件。我没有得到它在行命令可能是因为我动态添加它如下:

protected void gviewTemplate_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.Cells[1].Text != e.Row.Cells[2].Text)
        {
            e.Row.BackColor = System.Drawing.Color.Red;
            LinkButton lbtnReload = new LinkButton();
            lbtnReload.CommandArgument = e.Row.Cells[12].Text;
            lbtnReload.Attributes.Add("onclick", "javascript:ShowDiv()");
            lbtnReload.CommandName = "reload";
            lbtnReload.Text = "Reload";
            e.Row.Cells[1].Controls.Add(lbtnReload);

            DataTable dt = (DataTable)ViewState["update"];
            DataRow dr = dt.NewRow();
            dr["id"] = e.Row.Cells[0].ToString();
            dr["image"] = e.Row.Cells[1].ToString();
            dt.Rows.Add(dr);
        }
    }
}

protected void gviewTemplate_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "reload") 
    { 
        hdnfield.value = int.Parse(e.CommandArgument.ToString()); 
    } 

    btnFuImage.Visible = true; fuploadImage.Visible = true; 
} 

我已按照以下方式在gridview中显示它

<asp:BoundField ItemStyle-Width="100" DataField="Uploded" HeaderText="Uploaded Image" >  

我需要从这个网格的第一列获取值并将其更新为一些隐藏变量,以便我以后可以使用它。我该怎么做提前致谢

2 个答案:

答案 0 :(得分:0)

对于按钮,使用ButtonField并指定一个命令名,它将触发rowcommand事件。 BoundField不呈现按钮。如果你想点击一个boundfield,那就是一个更专业的设置...

您尝试将哪个用作点击?

答案 1 :(得分:0)

如果您只是想抓取一个值并将其存储在HiddenField中,以后为什么不将这个值放在javascript函数中并将其放在HiddenField中

lbtnReload.Attributes.Add("onclick", "javascript:ShowDiv(); SaveValue('" + value + "'); return false;);

这将阻止您不得不去服务器,这将更快

另外,为什么不使用TemplateField并在那里制作一个按钮,通过它更容易控制一切