人気ブログランキング | 話題のタグを見る

About smegy things


by smeg_head
カレンダー
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

RepeaterのOnItemCommandイベント

だいぶ、間が空いてしまった。

昨日まで発生していた、RepeaterのOnItemCommandイベントが
発生しなくなって困った。LinkButtonのイベントは発生するのに。

詳しい現象はこんなかんじ。

<asp:repeater id="repeater1" runat="server" OnItemCommand="repeater1_ItemCommand">

<asp:Button CommandName="edit" Text="編集" Runat="server" ID="btnEdit" />
<asp:LinkButton CommandName="detail" id="link1" runat="server" Text="">


というaspxファイルがあって、デザイン上では、イベントを設定してません。
repeaterのOnItemCommand属性でイベント発生時に実行するメソッドを指定し
てます。

Page_OnLoadで、セッションに保存していたDataSourceを再設定してしまってい
ました。リクエストが発生したとき、クリックのイベントより先にDataSerce
が再設定される。よくわからないけどこれが原因みたい。

repeater1.DataSource = Session["dataview"];
repeater1.DataBind();


この状態だと、Buttonのイベントは発生しない。LinkButtonのイベントは発生
する。
どうも附におちないけど、むやみに、DataSourceの設定とDataBindするなって
ことか?

リクエストが発生したとき、DataSourceが破棄されていたので、セッションに
保存するようにしてたんだけど。
by smeg_head | 2005-10-01 16:54 | dotnet