日期:2014-05-17  浏览次数:20773 次

遍历DataList控件找里面的ID找不到
不知道怎么写才能找到DataListItem 里面的ID,后来加个div元素也试也是找不到ID。不管服务端控件还是HTML元素都是找不到
C# code

   private void findDatalistControl()
    {
//这种方法item调试conut是0所以进不到循环里面
        foreach (DataListItem item in DataListProduct.Items)
        {
            labProName = item.FindControl("labProName") as Label;
        }
//这种方法Controls调试conut也是0所以进不到循环里面
        foreach (DataListItem item in DataListProduct.Controls)
        {
            labProName = item.FindControl("labProName") as Label;
        }
    }


下面是前台的代码

前台
HTML code

<div class="LiteralContent">
        <asp:DataList ID="DataListProduct" runat="server" 
            >
            <ItemTemplate>
                <div id="a">
                    <asp:ImageButton ID="imgbutProduct" runat="server" />aa
                </div>
                <div id="b">
                    <asp:Label ID="labProName" runat="server" Text="Label">aaa</asp:Label>
                </div>
            </ItemTemplate>
        </asp:DataList>
    </div>



------解决方案--------------------
原因是DataList没有绑定。
C# code
if (!Page.IsPostBack)
            {
                DataTable dt = new DataTable();
                dt.Columns.AddRange(new DataColumn[] { 
                    new DataColumn("aa",typeof(string))
                });

                DataRow dr = dt.NewRow();
                dr["aa"] = "guwei11";
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                dr["aa"] = "guwei22";
                dt.Rows.Add(dr);

                this.DataListProduct.DataSource = dt.DefaultView;
                this.DataListProduct.DataBind();
                
            }