asp.net ripetitore con UserControl - impostazione CommandArgument
-
27-09-2019 - |
Domanda
Ho il seguente codice ripetitore:
<asp:Repeater ID="repMain" runat="server" OnItemCommand="repMain_ItemCommand" EnableViewState="false">
<ItemTemplate>
<dmg:testcontrol runat="server" MyData=<%#Container.DataItem %>>
</dmg:testcontrol>
</ItemTemplate>
</asp:Repeater>
L'aspetto TestControl UserControl come:
<%@ 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%>"/>
E 'possibile per me di inviare attraverso il dropdownMain.SelectedValue come CommandArgument?
Proprio ora è una stringa vuota.
Grazie
Duncan
PS Questo è legato alla ASP.NET ripetitore non vincolante dopo ItemCommand ma ho pensato due sufficientemente diversi per tenere separate.
Soluzione
Un po 'vecchia questione, ma ho solo la mia auto ha trovato la risposta a questa.
CommandArgument="<%#dropdownMain.SelectedValue%>"
ha bisogno di guardare in questo modo, invece, con apici! Tutti i codici in linea nel giro di controlli ASP.NET devono essere fatte in questo modo, invece.
CommandArgument='<%#dropdownMain.SelectedValue%>'
Altri suggerimenti
Perché non avere il valore selezionato, e utilizzarlo all'interno della funzione di comando?
(perché per provare a inviarlo come argomento, dal momento in cui si può ottenere all'interno della funzione di comando chiamato e il suo stesso)