У меня есть объект, который возвращает 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 ... это то, что я пытаюсь реализовать здесь. Есть идеи?





Установите точку останова в отладчике и посмотрите, какой тип e.Row.DataItem на самом деле.
Это будет только DataRowView, если DataSource, который вы устанавливаете в сетке, - это DataView или DataTable. В противном случае это был бы тип элемента коллекции.
НП .. плюс это намного лучше, чем возиться с DataRowViews! Привязка строго типизированных данных FTW.
Это сделало это ... Я привел DataItem к своему типу элемента, а затем получил доступ к его свойствам, используя обычную нотацию, и это сработало ... спасибо!