ASP.Net: извлечение динамически добавленного пользовательского элемента управления на повторитель DataBound - PullRequest
0 голосов
/ 30 августа 2018

Я добавляю пользовательские элементы управления динамически к повторителю при привязке к элементу данных. Проблема в том, что я не могу найти пользовательский контроль для более поздних событий, таких как save.

<asp:Repeater runat="server" ID="rptTabContainers">
     <ItemTemplate>
          <asp:Panel runat="server" ID="pnlBody" ClientIDMode="Predictable" CssClass="panel-body">
          </asp:Panel>
     </ItemTemplate>
</asp:Repeater>

чем по пункту данных:

For Each r As DataRow In items.Rows
    Dim ItemType As String = r.Item("ItemType").ToString()

    Select Case ItemType
        Case "CheckBoxList", "RadioButtonList"
            Dim ctr As ctrl_VAMportfolio_CheckBoxList = CType(LoadControl("~/DW2/include/code/controls/VAM/ctrl_VAMportfolio_CheckBoxList.ascx"), ctrl_VAMportfolio_CheckBoxList)
            With ctr
                .ItemNumber = r.Item("ItemNo").ToString()
                .ItemText = r.Item("ItemText").ToString()
                .ID = String.Format("ctrl_{0}_{1}", DomainID, r.Item("ItemNo"))
                .ListItems = XMLtoList(r.Item("ItemOptions"))
                .MultipleSelect = (ItemType = "CheckBoxList")
                .ClientIDMode = ClientIDMode.Static

            End With

            pnlBody.Controls.Add(ctr)

        Case "ctrlRadioAndTextExplanation"
            Dim ctr As ctrlRadioAndTextExplanation = CType(LoadControl("~/DW2/include/code/controls/VAM/ctrlRadioAndTextExplanation.ascx"), ctrlRadioAndTextExplanation)
            With ctr
                .ItemNumber = r.Item("ItemNo").ToString()
                .ID = String.Format("ctrl_{0}_{1}", DomainID, r.Item("ItemNo"))
                .ClientIDMode = ClientIDMode.Static
            End With
            pnlBody.Controls.Add(ctr)

        Case "Upload", "Download"
            Dim ctr As ctrl_VAMportfolio_Upload = CType(LoadControl("~/DW2/include/code/controls/VAM/ctrl_VAMportfolio_Upload.ascx"), ctrl_VAMportfolio_Upload)
            With ctr
                .ItemNumber = r.Item("ItemNo").ToString()
                .ItemText = r.Item("ItemText").ToString()
                .DomainID = DomainID
                .PortfolioID = EvaluationID
                .ID = String.Format("ctrl_{0}_{1}", DomainID, r.Item("ItemNo"))
                .ClientIDMode = ClientIDMode.Static

            End With

            Dim fu As New FileUpload()
            fu.ID = String.Format("FileUpload{0}_{1}", DomainID, r.Item("ItemNo"))
            fu.AllowMultiple = True
            fu.Attributes.Add("style", "display:none;")

            pnlBody.Controls.Add(ctr)
    End Select
Next

Что ж, я пытаюсь получить данные от пользовательских контроллеров в репитере, но ничего не возвращается.

Спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...