前台代码
<asp:Repeater ID="rpt_list" runat="server" OnItemDataBound="rpt_list_ItemDataBound">
                <ItemTemplate>
                    <tr bgcolor="#FFF0F5">
                        <td align="center" id="td_mc" runat="server">
                             
                        </td>
                        <td width="20%" height="33" rowspan="1" align="center">
                            <asp:TextBox Width="50px" ID="tbx_num" runat="server" Text="0"></asp:TextBox>
                         </td>
</tr>
</ItemTemplate>
 </asp:Repeater>现在需要在td_mc 中动态生成多个dropdownlist protected void Page_Load(object sender, EventArgs e)
{
BindInfo(orderid);
} protected void BindInfo(string OrderID)
    {
        rpt_list.DataSource = dt;
         rpt_list.DataBind();
   }
 protected void rpt_list_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
//在此实现动态生成drp
  DropDownList[] drp = new DropDownList[dt.Rows.Count];
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                         drp[i] = new DropDownList();
                         drp[i].ID = "drp_mc_" + i.ToString();
                         drp[i].Items.Add(new ListItem(dt.Rows[i]["SendName"].ToString(), dt.Rows[i]["SendDh"].ToString()));
                        td_mc.Controls.Add(drp[i]);
}
}数据加载目前都没有问题,页面上repeater中有textbox需要输入数量 ,点击页面中按钮来遍历textbox中的数量就不对了,我知道要在page_load中加IsPostBack,但问题是加上IsPostBack后,动态生成的dropdownList就没了。
。  

解决方案 »

  1.   

    用ViewState保存状态,Page_Load中重新加载。
      

  2.   

    protected void rpt_list_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
    //在此实现动态生成drp
      DropDownList[] drp = new DropDownList[dt.Rows.Count];
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                             drp[i] = new DropDownList();
                             drp[i].ID = "drp_mc_" + i.ToString();
                             drp[i].Items.Add(new ListItem(dt.Rows[i]["SendName"].ToString(), dt.Rows[i]["SendDh"].ToString()));
                            
    }
      td_mc.Controls.Add(drp[i]); //放这里

    }放在循环外试试
      

  3.   

     ViewState 保存是一个好方法或者推荐你看看P哥的 http://topic.csdn.net/u/20080530/22/ef0d36a4-6bd4-4eba-9743-b56f080b2161.html
    也很不错 防丢失
      

  4.   

    从倾向上来说,其实我不太愿意忽悠人去写asp.net程序了。这就好象是老的艺术,毕竟asp.net是丧失了大好时光,其实要想说清楚其状态机制估计也没有几个人肯去钻研了。然而现在的ajax代码和开发工具进行企业开发,都很烂,跟blend相比连提鞋都不够。基本上我我会在大部分时间是哦那个blend、另外一部分时间使用vs。假设我要写html/javascript的话我会去使用Expression Web,但是现在没有实现搞那个,而且现在有战略性的产品要研发、没有花时间去搞javascript做单纯的网页的功夫。
      

  5.   


    感觉 老曹对linq偏执  P哥对blend类的程序设计偏执
    我去年搞wp7 blend把我搞疯了
      

  6.   

    这点特别同意  呵呵 p哥还不喜欢MVVM  不喜欢ms那套JQury和Ajax