次のような GridView があります。
<asp:GridView ID="MyGridView"
runat="server"
AutoGenerateColumns="False"
OnRowDataBound="MyGridView_RowDataBound" >
<asp:HyperLinkField . . . . . bla bla/>
<asp:BoundField . . . . . . . bla bla/>
</asp:GridView>
私のイベント ハンドラー (MyGridView_RowDataBound) は、実質的に次のようになります。
protected void MyGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.DataRow)
return;
// do stuff here
}
何らかの理由で、私のコードは「// do stuff here」行に到達しません。OnRowDataBound
ヘッダー行に対してのみ発火するため、データ行のチェックを通過しません。
MyGridView_RowCreated
ハンドラーを使用してデータ行が作成されることを確認しました。Web サイトを実行すると、データベースの行が表示されるので、バインディングが行われていることも明らかです。MyGridView.DataBind()
その上で、ステートメントが実行されていることを確認しました。
イベント ハンドラーがデータ行に対して起動しない原因となっているのは何ですか?
編集:さらに調べてみると、GridView.DataBound
イベントがまったく発生していないように見えるためDataBound
、行を使用してループすることはできません。