0
回答
如何取 PlaceHolder内生成的筛选框的值

在录入商品的时候,每个商品的属性都是不同的,如尺码和颜色等,这里的尺码和颜色是通过在Repeater放置一个PlaceHolder控件。

<asp:Repeater ID="RptList" runat="server" onitemdatabound="RptList_ItemDataBound">
            <ItemTemplate>
                <%#Eval("Title") %>: 
                <asp:PlaceHolder ID="attrPlaceHolder" runat="server"></asp:PlaceHolder>
            </ItemTemplate>
        </asp:Repeater>

然后在后台的 RptList_ItemDataBound 事件内设置PlaceHolder。

protected void RptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            // 获取属性占位符
            PlaceHolder attrPlaceHolder = (PlaceHolder)e.Item.FindControl("attrPlaceHolder");

            DataRowView dataRow = (DataRowView)e.Item.DataItem;
            int parentId = int.Parse(dataRow["Id"].ToString());
            DataTable arrtTable = new Bll.Category().GetList(parentId, 2);

            #region 获取商品的可选属性
            // 当前属性下的所有选项
            CheckBoxList CblAttribute = new CheckBoxList();
            CblAttribute.ID = "CblAttribute";



            //读取该属性列表
            foreach (DataRow r in arrtTable.Rows) {
                CblAttribute.Items.Add(new ListItem(r["Title"].ToString(), r["Id"].ToString()));
                    attrPlaceHolder.Controls.Add(CblAttribute);
            }
            CblAttribute.RepeatDirection = RepeatDirection.Horizontal;
            #endregion


        }

这里是把CheckBoxList控件放到PlaceHolder内了,可我提交后试了很多方法都无法找到CheckBoxList。已经四五天了。哎

<无标签>
举报
xuyiwei
发帖于5年前 0回/627阅
顶部