Datalist dans asp.net? ItemCommand cas, pas de tir?
dans mon application web, j'ai un datalist dans ce que je fais la liaison de certaines images. dans datalist itemcommand événement, j'écris du code du code qui n'est pas de tir, je veux dire la itemcomand événement n'est pas à la cuisson. u peut m'aider.
c'est mon code source
Contrôle DataList:
<asp:DataList ID="DLQuickVideos" runat="server" RepeatColumns ="2" CellPadding="0" CellSpacing="0" OnItemCommand="DLQuickVideos_ItemCommand" >
<ItemTemplate>
<asp:ImageButton ID="imgbtn" runat="server" ImageUrl='<%# "../Trailorvideos/"+ Eval("SnapShot") %>' CommandArgument='<%# Eval("video")+"|"+Eval("videoid") %>' CausesValidation="false" Width="111px" Height="83px" BorderStyle="double" BorderWidth="4px" BorderColor="#A70202" />
</ItemTemplate>
</asp:DataList>
Gestionnaire D'Événement:
protected void DLQuickVideos_ItemCommand(object source, DataListCommandEventArgs e)
{
try
{
string eval = e.CommandArgument.ToString();
int k = eval.IndexOf("|");
videoname = eval.Substring(0, k);
videoid = eval.Substring(k + 1);
string move = Request.QueryString["movie"].ToString();
if (Request.Browser.Browser == "IE")
{
dvplayer.InnerHtml = "<object id='player' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' name='player' width='500' height='350'> <param name='movie' value='player-viral.swf' /> <param name='allowfullscreen' value='true' /> <param name='allowscriptaccess' value='always' /> <param name='flashvars' value='file=~/User/Trailorvideos/" + videoname + "&autostart=true' /> <p><a href='http://get.adobe.com/flashplayer'>Get Flash</a> to see this player.</p> </object>";
}
else
{
dvplayer.InnerHtml = "<object type='application/x-shockwave-flash' data='player-viral.swf' width='500' height='350'> <param name='movie' value='player-viral.swf' /> <param name='allowfullscreen' value='true' /> <param name='allowscriptaccess' value='always' /> <param name='flashvars' value='file=~/User/Trailorvideos/" + videoname + "&autostart=true' /> <p><a href='http://get.adobe.com/flashplayer'>Get Flash</a> to see this player.</p> </object>";
}
GetQuickList(videoid);
}
catch (Exception ex)
{
}
}
code ci-dessus .cs code
Êtes-vous liant le gestionnaire d'événement pour la commande? Pouvez-vous poster le code correspondant (à la fois le code derrière et aspx/ascx)?
le code source.......... <asp:DataList ID="DLQuickVideos" runat="server" RepeatColumns ="2" CellPadding="0" CellSpacing="0" OnItemCommand="DLQuickVideos_ItemCommand" > <ItemTemplate> <asp:ImageButton ID="imgbtn" runat="server" ImageUrl='<%# "../Trailorvideos/"+ Eval("SnapShot") %>' CommandArgument='<%# Eval("video")+"|"+Eval("videoid") %
je place cette datalist dans un tableau qui est dans le div
le code source.......... <asp:DataList ID="DLQuickVideos" runat="server" RepeatColumns ="2" CellPadding="0" CellSpacing="0" OnItemCommand="DLQuickVideos_ItemCommand" > <ItemTemplate> <asp:ImageButton ID="imgbtn" runat="server" ImageUrl='<%# "../Trailorvideos/"+ Eval("SnapShot") %>' CommandArgument='<%# Eval("video")+"|"+Eval("videoid") %
je place cette datalist dans un tableau qui est dans le div
OriginalL'auteur Surya sasidhar | 2010-07-20
Vous devez vous connecter pour publier un commentaire.
Vous avez posté que c'est votre événement de chargement de page:
Cela ne fonctionnera pas. Vous ne devez pas databind sur le post de retour. Sinon, toute l'attente du gestionnaire d'événement demandes sont annulés.
Vous devez supprimer la partie de cette instruction si.
Je veux dire quand nous lier les données dans IsPostback est vrai c'est que les événements ne sera pas tiré suis-je en droit de M. Philippe dupont.
Merci M. Philip Smith, il fonctionne très bien.
OriginalL'auteur Philip Smith
Quand êtes-vous à la liaison de la DataList? Si le DataList qui est lié sur la PageLoad mais vous n'êtes pas de la manipulation pour une Publication, puis tous les gestionnaires d'événements sera perdu tel que le DataList est re-lié. Le ItemCommand événement ne sera jamais soulevées dans le présent cas.
Assurez-vous que votre méthode Page_Load est structuré comme suit:
Le code ci-dessus vous assurer que le DataList n'est pas re-créé sur la Publication.
Prendre un coup d'oeil à ce Article MSDN qui couvre la Page.Propriété IsPostBack
Êtes-vous en mesure de frapper les points d'arrêt placé dans DLQuickVideos_ItemCommand?
OriginalL'auteur NakedBrunch
Ajouter le nom d'une commande pour le bouton. Je pense que c'est la raison.
HTH.
Temporairement, essayez d'utiliser un Bouton, et l'ensemble de l'essayer avec UseSubmitBehavior="false".
OriginalL'auteur Brian Mains
Ma conjecture est que vous n'êtes pas databinding la DataList sur une publication. Les événements ne sont pas déclenché si le contrôle n'est pas lié aux données. Pouvez-vous poster le code que votre liaison de données, peut-être dans le Page_Load?
OriginalL'auteur dave thieben
Cela fonctionne:
balisage:
code derrière:
Mais ce que je ne comprends pas, c'est que vous appelez
GetQuickList
dansDLQuickVideos_ItemCommand
. Pour quoi? Mais où avez-vous initialement remplir le DataList?protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) //cette instruction if est ce qui empêche de re-liaison sur la Publication { GetQuickList(videoid, moviename); } else { GetQuickList(videoid, moviename) } }
Supprimer la GetQuickList(videoid); à partir de votre DLQuickVideos_ItemCommand !
Pouvez-vous collez le code html qui est affiché dans votre navigateur pour l'DataList?
Ce code.....<table id="DLQuickVideos" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse;"><tr><td><input type="image" name="DLQuickVideos$ctl00$imgbtn" id="DLQuickVideos_ctl00_imgbtn" src="../Trailorvideos/dasava04.flv.jpg" style="border-color:#A70202;border-width:4px;border-style:Double;height:83px;largeur:111px;" /> </td><td> <input type="image" name="DLQuickVideos$ctl01$imgbtn" id="DLQuickVideos_ctl01_imgbtn" src="../Trailorvideos/dasava06.flv.jpg" style="border-color:#A70202;border-width:4px;border-style:Double;height:83px;largeur:111px;"/>
OriginalL'auteur Jeroen