我有一个<asp:GridView >
,<asp:ButtonField ButtonType="Image">
作为其中一列。
问题在于:我必须根据在特定gridview行中找到的数据,在gridView_RowDataBound(...)
事件期间动态更改此ButtonField的图像。
真正的问题是,如何访问gridView_RowDataBound(...)
事件中的特定ButtonField,以便我可以用C#代码更改其图像?
我无法使用
Image imgCtrl = (Image)args.Row.FindControl("ctrlID");
因为<asp:ButtonField>
不允许设置ID(当我尝试运行webPage时会出现解析器错误)。我无法使用
args.Row.Cells[0].Controls[0];
因为.Controls [0]的第0个索引不存在(我遇到边界溢出错误)。
必须有一个简单,灵活,简单的方法来做到这一点!
答案 0 :(得分:2)
快速示例:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
if (e.Row.RowType == DataControlRowType.DataRow)
{
TableCell tableCell = e.Row.Cells[3]; // Column 3 in the grid have the Image Button
foreach (var control in tableCell.Controls)
{
if (control.GetType() == typeof(System.Web.UI.WebControls.ImageButton)) ;
{
ImageButton iButton = control as ImageButton;
iButton.ImageUrl = "/Logo.jpg";
}
}
}
}