后台代码如下
protected void BindTable(DateTime date)
{
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 7; j++)
{
tableTime.Rows[i].Cells[j].ID = "td" + i.ToString() + j.ToString();
string id = tableTime.Rows[i].Cells[j].ID;
string newpage = string.Format("window.open('AddEvent.aspx?id={0}','新建/修改事务','height=660,width=1200,toolbar=no,location=no,menubar=no,top=100,left=200')", id);
tableTime.Rows[i].Cells[j].Attributes.Add("onclick",newpage);
TextBox tb = new TextBox();
tb.Text = "wwww";
tb.ID = "tb" + i.ToString() + j.ToString();
tb.Width = Unit.Parse("30px");
tableTime.Rows[i].Cells[j].Controls.Add(tb);
}
}
前台部分代码:就是给tabletime的每个td添加textbox
<div id="div2" style="width:1200px; height:800px;margin:0px auto">
<table id="tableTime" runat="server" width="100%" height="100%" border="0" cellspacing="1" class="tableTime">
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
</table>
</div>
应该是你后台程序中又写了什么代码把上面生成的textbox给覆盖了!你看看吧
可以不用在后台生成控件,前台用jquery脚本写很方便,在后台写不太好,一般不这样做。
可是我不会写啊。不懂jquery,还有不是每个td都有textbox的,要根据条件判断
你可以这样弄:
只是给你提供一个思路,具体操作还需你自己来弄,希望能帮到你,看了你的写法,真的太麻烦了。
你好,谢谢你的回答,可是不是我想要的结果,你这只是给td生成了内容,我想要的效果是每个td里再根据条件生成相应个数的textbox或者其他控件,该控件可以被点击触发事件,它外层的td也要被点击触发事件,你帮我看看能解决吗?如下图所示,点击大的td时可以弹出新建页面,点击td里面的文字时也要弹出页
面。
@lijunmomo: 这样也可以根据条件生成相应个数的textbox啊
你确定调用了 BindTable() ???