首页 新闻 搜索 专区 学院

动态增加的控件PostBack找不到了

0
悬赏园豆:30 [已解决问题] 解决于 2013-10-14 15:01

前台代码:

 <ul style="list-style:none; width:1028px;  height:auto; overflow:visible;" id="UL1" runat="server">                          
               </ul> 

 

后台代码://从表中读取数据并显示为CheckBox,页面可正常显示出所有CheckBox

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
             CheckBox cb = null;
        var cbList=(from t in dt.AsEnumerable() where t["BoxCategory"].ToString() == pm.Category.ToString() select t);
        foreach (var s in cbList)
        {
            UL1.Controls.Add(new LiteralControl("<li>"));
            cb = new CheckBox();
            cb.Text = s["BoxName"].ToString();
            cb.ID = "CheckBox" + s["BoxID"].ToString();
            UL1.Controls.Add(cb);
            UL1.Controls.Add(new LiteralControl("</li>"));
        }                }
    }

 

Button代码:

 string s = string.Empty; CheckBox cb = null;          
            foreach (Control ct in UL1.Controls)
            {
                if (ct.GetType().ToString().Equals("System.Web.UI.WebControls.CheckBox"))
                {
                    cb = (CheckBox)ct;
                    if (cb.Checked == true)
                    {
                        s += cb.ID.Substring(8, cb.ID.Length - 8) + ",";
                    }
                }
            }

s获不到值,怎么办?

问题补充:

问题锁定在Button单击后回发得不到动态增加的按钮,如果是手动在前台放的按钮,s正常可以取到值。

happydaily的主页 happydaily | 菜鸟二级 | 园豆:494
提问于:2013-10-14 11:42
< >
分享
最佳答案
0

 1.不要告诉我在点击button之前,没有CheckBox被选中....   或者

 2.看下ct.GetType()内容是否跟你后面一致? 也可以用 ct is CheckBox来判断,后面用cb = ct as CheckBox, 不过后面要判断cb是否为null,否则抛异常

 3.在动态添加CheckBox的时候,给CheckBox添加属性 ranat="server"(用cb.Attribute())

 

好久没做B/S了,有点生疏了。试试吧.

收获园豆:30
何以解忧唯有撸码 | 菜鸟二级 |园豆:368 | 2013-10-14 12:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册