0

私はC#で4つの小さなゲームを続けて作成しています。

私が最初に考えたのは、既存のテーブルコントロールを使用し、それに6行5列を指定し、すべてのテーブルセルオブジェクトに一意のIDを指定することでした。次に、自分で定義した最初の行の各セルにイベントハンドラーを追加し続けます。これにより、ユーザーがセルの1つをクリックすると、コードはクリックされたセルの下のセルをチェックし、の背景色を変更します。実生活で挿入したピースを表すセル。

私の質問は、テーブルセルオブジェクトにイベントハンドラーを追加するにはどうすればよいですか。事前定義されたイベントはDataBinding、Init、Load、PreRender、およびUnloadのみであり、ニーズに合わないため、独自のイベントを作成する必要があります。何か案は?

4

1 に答える 1

0

通常のテーブル セルには OnClick イベントはありません。最も簡単な方法は<asp:LinkButton><asp:Button>または<asp:ImageButton>を表のセル内に配置することです。もちろん、ClickableTableCell自分でコントロールを作成することもできます。これは非常に単純な実装です:

public class ClickableTableCell : TableCell, IPostBackEventHandler
{
    public event EventHandler Click;

    public override void RenderBeginTag(HtmlTextWriter writer)
    {
        Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(this, null));
        base.RenderBeginTag(writer);
    }

    public void RaisePostBackEvent(string eventArgument)
    {
        OnClick(new EventArgs());
    }

    protected void OnClick(EventArgs e)
    {
        if (Click != null)
            Click(this, e);
    }
}

このコントロールを使用する場合は、最初に aspx ページの上または web.config でコントロールを登録する必要があります。

于 2011-03-24T20:48:11.933 に答える