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が破棄されていたので、セッションに
保存するようにしてたんだけど。
[PR]
by smeg_head | 2005-10-01 16:54 | dotnet