因需要动态生成N个datalist,并要求动态生成的datalist中动态生成一个“ID="**" runat="server"  CommandName="connect" CommandArgument='<%# Eval("cols")%>'  Height="48px" Width="100%"”的按钮,请问怎样写,按钮的ID怎样定?谢谢。

解决方案 »

  1.   

    直接在ItemTemplate里类似你上面写的方一个button就可以了啊,id写成固定的,不会冲突
      

  2.   


                Panel1.Controls.Add(new LiteralControl("<ItemTemplate>"));
                Panel1.Controls.Add(new LiteralControl("<%# Eval(cols)%>"));
                Button bt = new Button();
                bt.ID = "button" + y1.ToString();
                Panel1.Controls.Add(new LiteralControl("</ItemTemplate>"));
    楼上高人看看我这样写正确否?
    另外这句Panel1.Controls.Add(new LiteralControl("<%# Eval(cols)%>"));应该有错误,我绑定不了数据,请问错在哪里?
      

  3.   

    或是我改换一个问法。
    问题1:动态生成的datalist如何绑定数据,例如我生成
    datalist dl =new datalist();
    .
    .
    .
    dl.datasource=ds.table[0];
    dl.databind();
    现在我绑定不了数据,如果是静态的应该是在<ItemTemplate>里写<%# Eval(cols)%>这一句就能绑定数据,但动太态态的要怎样写?
    问题2:动态生成的datalist里如何设置<ItemTemplate>里的控件,例如要在这里面放一个button
      

  4.   

    如果是在DataBind()之后添加,可以考虑遍历DataList.Items集合,依次操作每个DataListItem的Controls集合;
    否则的话自己写个类继承ITemplate吧,最后把自己写的东西赋值给DataList.ItemTemplate