0

我正在尝试更改我的一个列以显示图片而不是文本。目前所有的文本都是从 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 中并且这些工作。[Overall Status] 是 SQL 中的一个字段,我无法将其更改为图像。

我认为这可能是因为它尚未绑定数据所以找不到该字段,但我显示了 FindControls 的计数 = SQL 结果 + 2 个字段。

接下来我认为可能是我的 ..FindControl(THISNAME) 错误。但是我不知道如何找到控件的名称。它必须是 e.Row.Controls[index].Name (我知道索引)之类的东西,但我不知道要采用什么属性。

谢谢,

4

1 回答 1

1

这通常是在RowCreatedGridView 的方法中完成的(或者至少我是这样做的),据我所知,RowDataBound你只有行的数据,但页面上还不存在,找到一个控制连续使用e.Row.Cells[X].FindControl("ControlName")

希望这可以帮助...

于 2012-08-17T02:22:24.197 回答