我的程序是这样的:
在page_load里动态生成50行20列的表格,每个单元格都是一个tablecell控件
for(int i=1;i<=50;i++)
{
TableRow row=new TableRow();
for(int j=1;j<=20;j++)
{
TableCell cell=new TableCell();
cell.Height=40;
cell.Width=40;
cell.HorizontalAlign=HorizontalAlign.Center;
cell.VerticalAlign=VerticalAlign.Middle;
cell.Text=i.ToString()+","+j.ToString();
cell.Attributes.Add("OnClick","CellClick");
row.Cells.Add(cell);
}
Table2.Rows.Add(row);
}
}public void CellClick(object sender, EventArgs e)
{
TableCell cell=(TableCell)sender;
string size=cell.Text;
Response.Write(string.Format("<script>alert('{0}');</script>",size));
}为什么在页面上单击单元格不响应CellClick消息呢,我是asp.net初学者,望高手赐教,不胜感激!

解决方案 »

  1.   

    生成table的部分,放在
    if(!Page.IsPostBack)
    {
    //这里
    }
      

  2.   

    晕啊,客户OnClick怎么会响应到服务器端的方法呢。
    要么就cell.Attributes.Add("OnClick","CellClick"+i.tostring()+"_"+j.tostring());然后就将各个CellClicki_j的javascript方法注册到页面中。
    要么就继承INamingContainer,自己写类似于ImageClickEventHandler的方法。
      

  3.   

    cell.Attributes.Add("OnClick","CellClick");
    这是客户端事件public void CellClick(object sender, EventArgs e)
    {
    TableCell cell=(TableCell)sender;
    string size=cell.Text;
    Response.Write(string.Format("<script>alert('{0}');</script>",size));
    }
    这是服务器端事件!!!