我正在开发一个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" >
我需要从这个网格的第一列获取值并将其更新为一些隐藏变量,以便我以后可以使用它。我该怎么做提前致谢
答案 0 :(得分:0)
对于按钮,使用ButtonField并指定一个命令名,它将触发rowcommand事件。 BoundField不呈现按钮。如果你想点击一个boundfield,那就是一个更专业的设置...
您尝试将哪个用作点击?
答案 1 :(得分:0)
如果您只是想抓取一个值并将其存储在HiddenField中,以后为什么不将这个值放在javascript函数中并将其放在HiddenField中
lbtnReload.Attributes.Add("onclick", "javascript:ShowDiv(); SaveValue('" + value + "'); return false;);
这将阻止您不得不去服务器,这将更快
另外,为什么不使用TemplateField并在那里制作一个按钮,通过它更容易控制一切