0

ObjectDataSource から取得して Gridview にバインドする IList を返すオブジェクトがあります。標準バインディングを使用するだけですべて正常に動作しますが、次のようにバインディングをカスタマイズしてリンクボタンのプロパティを設定しようとしています。

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 に関する Matt Berseth の素晴らしいブログからのものです...これをここで実装しようとしています。何か案は?

4

1 に答える 1

2

デバッガーでブレークポイントを設定し、e.Row.DataItem実際の型を確認します。

グリッドに設定している がまたはのDataRowView場合にのみ、 になります。それ以外の場合は、コレクションの要素の型になります。DataSourceDataViewDataTable

于 2008-11-07T05:59:33.960 に答える