Можно ли как-то изменить ваши данные, чтобы превратить эти строки в логические? Такое использование строк производит впечатление запаха кода. Лично я бы превратил эти строки в логические свойства класса, который вы используете в качестве источника данных для вашей сетки, и изменил бы их свойства видимости в разметке, а не возвращался в базу данных, чтобы выбрать эти свойства построчно основа строки.
Независимо от этого, да, вы можете использовать событие RowDataBound следующим образом:
yourGrid_RowDataBound(object sender, EventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
YourClass currentClass = (YourClass) e.Row.DataItem;
for (int i = 0; i < currentClass.stringFlags.Length; i++)
{
string currentFlag = currentClass.stringFlags[i];
if (currentFlag == "Tax")
{
Image imgTax = (Image) e.Row.FindControl("imgTax");
imgTax.Visbile = true;
}
else if (currentFlag == "Compliance")
{
Image imgCompliance = (Image) e.Row.FindControl("imgCompliance");
imgCompliance.Visbile = true;
}
else if (currentFlag == "Accounting")
{
Image imgAccounting = (Image) e.Row.FindControl("imgAccounting");
imgAccounting.Visbile = true;
}
}
}
}