Essayer de faire apparaître une IFrame Shadowbox avec Jquery à partir d'un tableau de données asp: gridview. Je ne peux pas obtenir les citations appropriées dans la chaîne:Asp.Net et Shadowbox
<asp:ImageButton ID="btnEdit" runat="server"
OnClientClick='<%# "javascript:popAccount(\'"+
Eval("id", "Popup.aspx?id={0}")+"\');" %>' />
Parser Message d'erreur: La balise de serveur est pas bien formé.
Sans les guillemets simples échappées (peut ne pas fonctionner, mais parse correctement):
<asp:ImageButton ID="btnEdit" runat="server"
OnClientClick='<%# "javascript:popAccount("+
Eval("id", "Popup.aspx?id={0}")+");" %>' />
HTML côté client, comme prévu:
onclick="javascript:popAccount(Popup.aspx?id=3ce3b19c-1899-4e1c-b3ce-55e5c02f1);"
Comment puis-je obtenir des citations dans le Javascript?
Editer: solution ajoutée. Ce n'est pas très générique, car les types de bases de données doivent être connus pour accéder à la propriété id. La clé (telle que définie dans le paramètre DataKeyNames de GrodView) ne semble pas être exposée dans l'argument d'événement. Mais ça fonctionne.
protected void editGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
// do not look at header or footer
if (e.Row.RowType == DataControlRowType.DataRow)
{
ImageButton btn = e.Row.FindControl("btnPopup") as ImageButton;
if (btn != null)
{
btn.OnClientClick =
"javascript:popAccount('EditAccountPopup.aspx?"+
Constants.acctidParam+"="+
((tb_account)(e.Row.DataItem)).id.ToString()+"');";
}
}
Est-ce important pour ce problème? Je dois utiliser la balise de connexion de données de toute façon ... – cdonner
Merci pour votre réponse. J'ai mis à jour mon post pour inclure une suggestion pour une solution qui utilise codebehind, et une version plus simple utilisant jQuery. –