ASP.NET Repeator com UserControl - Configuração do CommandArgument
-
27-09-2019 - |
Pergunta
Eu tenho o seguinte código repetidor:
<asp:Repeater ID="repMain" runat="server" OnItemCommand="repMain_ItemCommand" EnableViewState="false">
<ItemTemplate>
<dmg:testcontrol runat="server" MyData=<%#Container.DataItem %>>
</dmg:testcontrol>
</ItemTemplate>
</asp:Repeater>
O TestControl UserControl parece:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestControl.ascx.cs" Inherits="TestRepeater.TestControl" %>
<asp:Literal runat="server" ID="litMain" Text="<%#MyData.MyValue %>"></asp:Literal>
<asp:DropDownList runat="server" ID="dropdownMain"></asp:DropDownList>
<asp:Button runat="server" ID="btnMain" Text="Click Me" CommandName="Update" CommandArgument="<%#dropdownMain.SelectedValue%>"/>
É possível enviar o suspensão do suspensão.SelectedValue como o CommandArgument?
Agora é uma corda vazia.
Obrigado
Duncan
PS isso está relacionado a ASP.NET Repeator não vinculativo após o ItemCommand Mas eu pensei que os dois suficientemente diferentes para se separar.
Solução
Pergunta um pouco antiga, mas eu só encontrei a resposta para esta.
CommandArgument="<%#dropdownMain.SelectedValue%>"
Precisa parecer assim com citações únicas! Todos os códigos embutidos em um ASP.NET controles devem ser feitos dessa maneira.
CommandArgument='<%#dropdownMain.SelectedValue%>'
Outras dicas
Por que não obter o valor selecionado e usá -lo dentro da função de comando?
(Por que tentar enviá -lo como argumento, a partir do momento em que você pode obtê -lo dentro do comando chamado função e é o mesmo)