// override to create repeated items protected override void CreateChildControls() { if (!Visible) { return; } SelectedIndex = -1; object o = ViewStateAttributes.GetFromViewState("NumItems", null); if (o != null) { // get item ids and indexes for supporting ajax list append, insert and remove operations and restoring the exact previous state ArrayList itemIds = GetViewStateItemIds(); ArrayList itemIndexes = GetViewStateItemIndexes(); // clear any existing child controls Controls.Clear(); int numItems = (int)o; int pageSize = this.PageSize; for (int i = 0; i < numItems && i < pageSize; i++) { // create item RepeaterItem item = new RepeaterItem(i, null); InvisibleItem invItem = new InvisibleItem(i, null); try { // initialize item id if (itemIds != null) { item.ID = Iterator.FormatId((int)itemIds[i * 2]); invItem.ID = Iterator.FormatId((int)itemIds[i * 2 + 1]); } else { item.ID = Iterator.FormatId(i * 2); invItem.ID = Iterator.FormatId(i * 2 + 1); } // initialize item index if (itemIndexes != null) { item.ItemIndex = (int)itemIndexes[i * 2]; invItem.ItemIndex = (int)itemIndexes[i * 2 + 1]; } } catch (ArgumentOutOfRangeException) { throw new HEMessageException(MR.GetMessage(MessageId.AjaxListModified, "List Records", this.ID)); } // initialize item from template ItemTemplate.InstantiateIn(item); InvisibleTemplate.InstantiateIn(invItem); // add item to the child controls collection Controls.Add(item); Controls.Add(invItem); } } }
private void CreateItem(object current, int i, bool doDatabind) { // create item RepeaterItem item = new RepeaterItem(i, current); InvisibleItem invItem = new InvisibleItem(i, current); // get the id of the last created item int lastId = -1; if (Controls.Count > 0) { lastId = Iterator.GetIntegerId(Controls[Controls.Count - 1].ID); } // initialize item from template ItemTemplate.InstantiateIn(item); InvisibleTemplate.InstantiateIn(invItem); // set the ids appropriately item.ID = Iterator.FormatId(lastId + 1); invItem.ID = Iterator.FormatId(lastId + 2); // add item to the child controls collection Controls.Add(item); Controls.Add(invItem); if (doDatabind) { item.DataBind(); invItem.DataBind(); } }
public void RefreshItem(int dataItemIndex) { // set the datasource position IOSList rl = DataSource; rl.SetPosition(dataItemIndex); SelectedIndex = dataItemIndex; // databind the correspondent item int controlIndex = GetItemControlIndex(dataItemIndex); RepeaterItem item = (RepeaterItem)Controls[controlIndex]; item.DataItem = rl.Current; item.DataBind(); InvisibleItem invItem = (InvisibleItem)Controls[controlIndex + 1]; invItem.DataItem = rl.Current; invItem.DataBind(); }