Невозможно привести DataItem к DataRowView в пользовательском сценарии привязки - PullRequest
0 голосов
/ 07 ноября 2008

У меня есть объект, который возвращает IList, который я получаю из моего ObjectDataSource и привязываю к Gridview. Все работает нормально, если я просто использую стандартную привязку, но я пытаюсь настроить привязку, чтобы установить свойства для кнопки ссылки следующим образом:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //  extract the link button
                LinkButton lnkViewMap = (LinkButton)e.Row.FindControl("lnkViewMap");

                //  grab the datarowview
               System.Data.DataRowView row = (System.Data.DataRowView)e.Row.DataItem;

                //  set the onclientclick to fire our showMap javascript function,
                //  passing through the lat/longs
                lnkViewMap.OnClientClick = string.Format("showMap({0}, {1}); return false;", row["Lat"], row["Long"]);
            }
        }

Моя ошибка возникает при приведении e.Row.DataItem к DataRowView. Приведенный выше код взят из потрясающего блога Мэтта Берсета о Virtual Earth, который я и пытаюсь реализовать здесь. Есть идеи?

1 Ответ

2 голосов
/ 07 ноября 2008

Установите точку останова в отладчике и посмотрите, какой тип e.Row.DataItem на самом деле.

Это будет DataRowView только если DataSource, который вы устанавливаете в сетке, равен DataView или DataTable. В противном случае это будет тип элемента коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...