- PR -

ASP.NETのDataGridコントロールのイベント

1
投稿者投稿内容
ゆき
大ベテラン
会議室デビュー日: 2003/11/02
投稿数: 121
投稿日時: 2003-11-02 18:24
 どなたかわかる人がいたら教えてください。
ASP.NETのDataGridコントロールに選択ボタン列を追加したのですが、
選択ボタンを押しても、イベントが取れません。
どうしたらよいのでしょうか?
コードは、
(WebForm1.aspx)
<asp:DataGrid id=DataGrid1 OnSelectedIndexChanged="DataGrid1_SelectedIndexChanged" style="Z-INDEX: 101; LEFT: 192px; POSITION: absolute; TOP: 80px" runat="server" Width="376px" DataSource="<%# DataSet11 %>" DataMember="Categories" DataKeyField="ID" Height="176px" AutoGenerateColumns="False" PageSize="4" AllowPaging="True">
<Columns>
  <asp:ButtonColumn Text="選択" ButtonType="PushButton" CommandName="Select">
</asp:ButtonColumn>
<asp:BoundColumn DataField="ID" SortExpression="ID"HeaderText="ID">
</asp:BoundColumn>
</Columns>
</asp:DataGrid>

(WebForm1.aspx.vb)
Sub DataGrid1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.SelectedIndexChanged
Label1.Text = DataGrid1.SelectedItem.Cells(1).Text
End Sub

です。
それとSub DataGrid1_SelectedIndexChangedにPrivateを付けると、コンパイルエラーになってしまいます。

@ITの連載記事にも同じ内容の記事が出ていましたが、それを見ながらやったつもりなのに、うまくいかないです。
初心者の質問で申し訳ありませんが、よろしくお願いいたします。



Valhalla
ベテラン
会議室デビュー日: 2002/09/03
投稿数: 53
投稿日時: 2003-11-03 23:30
> ASP.NETのDataGridコントロールに選択ボタン列を追加したのですが、
> 選択ボタンを押しても、イベントが取れません。

Page_Loadメソッドで毎回新たにDataBind呼び出してませんか?

If IsPostBack = False Then
  ・
  ・
 DataGrid1.DataBind()
End If

のようにする必要があります。
データ連結するコントロールのボタンはややこしいですね。

Privateは・・よくわかりませんね。
VS.NETで選択ボタン追加して、ボタンのダブルクリックで
自動的に作成されるメソッドはもともとPrivateですが。
チャチャ
常連さん
会議室デビュー日: 2003/10/13
投稿数: 42
投稿日時: 2003-11-04 10:58
privateじゃなく、publicにしたらどうですか?
ゆき
大ベテラン
会議室デビュー日: 2003/11/02
投稿数: 121
投稿日時: 2003-11-04 13:22
ご返答ありがとうございます。
Page_Load イベントで
If IsPostBack = False Then
Me.DataBind()
End If
にしたらできました。
ASP.NETって、今回の件だとか、セキュリティの設定だとか、
できてしまうと何でもないことで、ひっかかってしまいます。
あまりに初心者的な内容でつまずくので、サンプルも見つからなくって・・・。
本当にありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)