0

aspxに登録されたイベント

<asp:Repeater ID="StepRepeater" OnItemDataBound="StepRepeater_ItemDataBound1" runat="server">

AutoEventWireUpで試してみましたtrue&false

コードビハインドのメソッドは次のとおりです。

    public void LoadSteps(Request request)
    {
        Repeater StepRepeater = new Repeater();

        StepRepeater.DataSource = request.Steps;
        StepRepeater.DataBind();
    }
    protected void StepRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
}

ステップスルーするときは、「StepRepeater.DataBind();」を直接通過します。ItemDataBoundイベントをヒットせずに。

追加情報があれば教えてください。

4

2 に答える 2

2

OnItemDataBound値がメソッド名と一致しません。

OnItemDataBound="StepRepeater_ItemDataBound1"

protected void StepRepeater_ItemDataBound

メソッド名1を末尾から削除するか、変更してください。OnItemDataBound


また、@Adilnew Repeater()が述べているように、次の行を削除します。

Repeater StepRepeater = new Repeater();

更新:new Repeater() null 参照エラーを防ぐために行を追加することに関する別の回答に関するコメントを読んだ後:

追加すると、コントロールnew Repeater()の新しいインスタンスが作成されるため、ASPX マークアップ ファイルの を参照しません。RepeaterRepeater

null 参照例外を受け取った場合はInherits@Pageディレクティブ (通常は ASPX ファイルの一番上の行) のプロパティがファイルの と一致しclass.aspx.csいること、およびCodeFileプロパティが.aspx.csファイル名と一致していることを確認する必要があります。

于 2012-08-15T16:33:43.423 に答える
0

bindedイベント ItemDataBoundがありますが、新しく作成されたリピーター オブジェクトStepRepeater in htmlのデータソースを割り当てています。no event is attached to this repeater object

この発言を削除

 Repeater StepRepeater = new Repeater();

あなたのコードは

public void LoadSteps(Request request)
{
    StepRepeater.DataSource = request.Steps;
    StepRepeater.DataBind();
}

OnItemDataBoundコード ビハインドと一致するように htmlのイベントの名前を変更します。

<asp:Repeater ID="StepRepeater" OnItemDataBound="StepRepeater_ItemDataBound" runat="server">
于 2012-08-15T16:31:59.647 に答える