Listview с динамическими элементами управления - динамические элементы управления исчезают после обратной передачи - PullRequest
1 голос
/ 26 декабря 2011

У меня есть просмотр списка, который загружает динамические элементы управления из xml / xslt

 <asp:ListView ID="DynamicFields" runat="server"
          DataSourceID="CustomFields" 
          OnItemDataBound="DynamicFields_ItemDataBound"                                                                              
          GroupItemCount="2" ItemPlaceholderID="itemsGroup" 
          GroupPlaceholderID="itemsGroup">
      <LayoutTemplate>
         <table width="470" border="0" cellpadding="0" cellspacing="10">
             <asp:PlaceHolder ID="itemsGroup" runat="server" />
         </table>
      </LayoutTemplate>
      <GroupTemplate>
         <tr>
             <asp:PlaceHolder runat="server" ID="itemsGroup"></asp:PlaceHolder>
         </tr>
      </GroupTemplate>
      <ItemTemplate>
           <custom:CustomField ID="Field" runat="server" 
              FieldIndex='<%# Eval("index") %>' /> 
      </ItemTemplate>  
      <AlternatingItemTemplate>
           <custom:CustomField ID="Field" runat="server" 
              FieldIndex='<%# Eval("index") %>' />
      </AlternatingItemTemplate>        
</asp:ListView>  

И в коде моей страницы я привязываю свойства пользовательского элемента управления и вызываю метод bind, который загружает xml и создает элементы управления

protected void DynamicFields_ItemDataBound(object sender, ListViewItemEventArgs e)
    {


        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            ucCustomField uc = (ucCustomField)e.Item.FindControl("Field");
            uc.FileName = FORM_PATH;
            uc.FormName = FORM_NAME;
            uc.LoadXMLFile(); //binding xml content here
        }
    }

Я добавляю этот просмотр списка в существующую форму со статическими элементами управления и кнопкой сохранения.Когда я нажимаю кнопку, это вызывает проверку и показывает мне всплывающие сообщения со сводкой проверки [ожидается], и все мои динамические элементы управления в списке исчезают после того, как я нажимаю кнопку ОК во всплывающем окне.Как сохранить эти элементы управления видимыми, а также любые значения, которые могли быть введены после обратной передачи?

Ответы [ 3 ]

0 голосов
/ 26 декабря 2011

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

if(e.Item.ItemType == ListItemType.Item 
    || e.Item.ItemType == ListItemType.AlternatingItem)
{
}
0 голосов
/ 28 декабря 2011

исправили это, вызвав DynamicFields.DataBind(), когда Page.IsPostback истинно

0 голосов
/ 26 декабря 2011

И на моей странице codebehind я связываю свойства пользовательского элемента управления и вызываю метод bind, который загружает xml и создает элементы управления

Можете ли вы сказать, где вы вызываете метод Bind / Databind. Положив, что в загрузке страницы я думаю, решить проблему. Обратная запись удалит все, что было динамически добавлено на страницу.

С уважением, SJ

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