0

我正在用 C# 连续创建一个 4 人的小游戏。

我的第一个想法是使用现有的 Table 控件,给它 6 行和 5 列,并给所有的 tablecell 对象一个唯一的 id。然后,我将继续向我自己定义的第一行中的每个单元格添加事件处理程序,以便当用户单击其中一个单元格时,我的代码将检查被单击单元格下方的单元格并更改背景颜色代表您在现实生活中插入的片段的单元格。

我的问题是,如何向 tablecell 对象添加事件处理程序,因为唯一的预定义事件是 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 回答