我正在尝试更改其中一个列以显示图片而不是文字。该文本目前全部来自SQL。
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRow dr = ((DataRowView)e.Row.DataItem).Row;
HyperLink EditLink = (HyperLink)e.Row.FindControl("EditLink");
EditLink.NavigateUrl = "javascript:ShowDialogTest('2','" + dr[0].ToString() + "')";
HyperLink DeleteLink = (HyperLink)e.Row.FindControl("DeleteLink");
DeleteLink.NavigateUrl = "javascript:ShowDialogTest('3','" + dr[0].ToString() + "')";
System.Web.UI.WebControls.Image i = (System.Web.UI.WebControls.Image)e.Row.FindControl("Overall Status");
i.ImageUrl = "url";
}
所以EditLink和DeleteLink都在ASP中,这些都有效。 [总体状态]是SQL中的一个字段,我无法将其更改为图像。
我认为可能是因为它还没有绑定数据所以无法找到该字段,但我显示了FindControls的计数,其中= SQL结果+ 2个字段。
接下来我觉得可能是我的..FindControl(THISNAME)错了。但是我不知道如何找到控件的名称。它必须类似于e.Row.Controls [index] .Name(我知道索引)或其他东西,但我无法弄清楚要采取什么属性。
谢谢,
答案 0 :(得分:1)
这通常在GridView的RowCreated
方法中完成(或者至少我这样做),就像我在RowDataBound
上知道的那样,你只有行的数据但是它还没有存在于页面上,要在一行中找到一个控件,请使用e.Row.Cells[X].FindControl("ControlName")
希望这会有所帮助......