Pergunta

Eu tenho um controle .NET repeater que é data-bound a uma lista. Como parte do Item Collection do repetidor, eu tenho um "botão Remover" que efetivamente remove este elemento lista atual.

Isso funciona, em code-behind eu posso com sucesso remover um item da datasource do Repeater .

Meu problema é o :. quando eu reiniciar o datasource e chamada MyRepeater.DataBind() atualizado novamente, o Repeater interface não atualizar com o item removido

Eu estou procurando o evento para redesenhar ou atualizar essencialmente o Repeater com base na lista atualizada. Obrigado por qualquer ponteiros ou exemplos.

Foi útil?

Solução

Você precisa chamar o método 'DataBind' no seu fonte de dados, então Chamada de 'DataBind' no seu controle Repeater.

Outras dicas

Você está alimentando a fonte de dados atualizados?

Se você estiver configurando fonte de dados em código-behind, você precisará configurá-lo com dados atualizados, em seguida, chamar o método DataBind.

Eu corri para algo parecido com um controle Repeater e uma fonte DataTable.

Não havia um método de actualização na DataTable, mas chamar DataTable.EnableDynamicData (typeof (DataTable)) no carregamento da página inicial resolveu o problema.

Eu tinha uma situação semelhante ... um repetidor vinculado a um XmlDataSource, tanto dentro de um UpdatePanel. Eu queria que o usuário digite um nome de cada vez, em seguida, clicar em um botão "Adicionar" para atualizar a lista no repetidor.

eu definir "EnableViewState" para False no repetidor eo XmlDataSource e set "EnableCaching" na XmlDataSource para False também. I definir a propriedade de Dados da XmlDataSource, chamado DataBind para o XmlDataSource, defina a propriedade DataSourceID do repetidor, então chamado DataBind para o repetidor. Talvez tenha sido um exagero ... mas funcionou. Talvez isto ajude.

UPDATE: eu descobri que através da criação EnableViewState para False no controlo repetidora, meu evento ItemCommand não iria fogo. Mas eu acho que você só precisa definir EnableViewState / EnableCaching para Falso para a fonte de dados ... Voltei a configuração EnableViewState como True para o repetidor e agora tudo parece bem.

forçando vincular normalmente é feito onde o DataBind automática é feita no PreRender evento.

Normalmente, se você fez a remover no evento de clique, o repetidor deve atualizar por si só, uma vez automaticamente na PreRender, controles na página são DataBind (). Aqui está o que o doc de dizer Microsoft:

PreRender:. Antes deste evento ocorre cada dado controle ligado cuja propriedade DataSourceID é conjunto chama seu método DataBind

fonte

Então, provavelmente você afetada Youritem.DataSource = List, mas MS sugiro fazer YourItem.DataSourceID = List.ID, ou algo parecido.

Hope isso ajuda

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top