Ошибка вызвана тем, что вы не добавили в свой словарь запись, соответствующую значению cell.Text. Единственные ключи, которые содержит ваш словарь - это «Идентификатор продукта» и «Описание продукта», поэтому, если у вас нет ячеек, которые на самом деле содержат этот текст, он всегда будет неудачным. Вы могли бы сделать это:
if (headerTooltips.ContainsKey(headerText))
{
cell.Attributes.Add("title", headerTooltips[headerText]);
}
Что выводит вас за пределы исключения, но не думайте, что оно делает то, что вы пытаетесь достичь.
Редактировать:
Вы просто хотите, чтобы в качестве всплывающей подсказки отображался текст cell.Text? Если да, то сделайте это:
// This is only replacing the foreach part, the rest of your code is still valid
foreach (System.Web.UI.Control ctl in cell.Controls)
{
if (ctl.GetType().ToString().Contains("DataControlLinkButton"))
{
cell.Attributes.Add("title", cell.Text);
}
}