- PR -

Repeaterのボタンイベントについて

1
投稿者投稿内容
しりしり
会議室デビュー日: 2004/09/16
投稿数: 2
投稿日時: 2004-09-16 11:36
Repeaterにボタンを設定して、そのボタンを押したときのイベントが取れなくて
困っています。
開発環境:VS.NET2003
VBでWebアプリを開発しています。

Repeaterで作成したボタンをクリックしても、イベントが取得できません。
但し、<asp:Button>を<asp:LinkButton>に変更すれば、イベントは取れます。

<asp:repeater id="Repeater1" runat="server">を
<asp:repeater id="Repeater1" runat="server" OnItemCommand="R1_ItemCommand">
に変更して
aspx.vbの記述
Sub R1_ItemCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.RepeaterCommandEventArgs)
  Debug.WriteLine("********** Repeater1_ItemCommand ***************")
End Sub
としても、イベントがとれません。
HP上のサンプルソースでは、イベントが取れるようですが・・・
<asp:Button>でイベントが取れないの何故でしょうか?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwebuiwebcontrolsrepeaterclassonitemcommandtopic.asp
も見ましたが、原因がわかりません
ご存知の方、ご教授願います。

aspxファイルのhtml画面で、
<asp:repeater id="Repeater1" runat="server">
<ItemTemplate>
 <tr>
  <asp:Button runat="server" Text="参照" CommandName="select"></asp:Button>
 </tr>

aspx.vbの記述
Private Sub Repeater1_ItemCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles
Repeater1.ItemCommand

 Debug.WriteLine("********** Repeater1_ItemCommand ***************")

End Sub
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-09-16 12:39
内容を斜め読みしただけなんですが、
Page_LoadイベントでRepeaterにDataBindしていると思いますが、
この時にIsPostBackのチェックをしていないとかではないでしょうか?

--追加--
はやとちりかも(^^;

C#ですけど、こちらではイベントが取れましたよ。
コード:

public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater Repeater1;
protected System.Web.UI.WebControls.Label Label1;

private void Page_Load(object sender, System.EventArgs e)
{
if (!this.IsPostBack)
{
ArrayList values = new ArrayList();
values.Add(1);
values.Add(2);
values.Add(3);
values.Add(4);
values.Add(5);
values.Add(6);
values.Add(7);
values.Add(8);
values.Add(9);
values.Add(10);

Repeater1.DataSource = values;
Repeater1.DataBind();
}
}
private void Repeater1_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
Label1.Text = e.Item.ItemIndex.ToString();
}
}

//HTML
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="RepeaterTest.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td>
<ASP:Button Text="Button" CommandName="select" runat="server" ID="Button1" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 93px" runat="server">Label</asp:Label>
</form>
</body>
</HTML>





_________________
諸農和岳
Powered by Borland Delphi/C++Builder & Microsoft VS.NET

[ メッセージ編集済み 編集者: Jubei 編集日時 2004-09-16 12:59 ]
しりしり
会議室デビュー日: 2004/09/16
投稿数: 2
投稿日時: 2004-09-16 13:06
ご回答ありがとうございました。
ご指摘通りです。
ありがとうございました。
1

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