2010-01-25 5 views
1

J'ai un bouton de lien avec l'image et l'étiquette à l'intérieur. Après la publication, l'image et l'étiquette ne sont pas visibles.asp.net Image du bouton de lien non visible après la publication

< asp:LinkButton ID="AddNewRunLinkButton" runat="server" CssClass="Navigationlocalnav" 
OnClick="AddNewRunLinkButton_Click" > 
&nbsp; 
    < img id="Img1" src="../../Images/add_newIcon.gif" runat="server" alt="Add New Run" /> 
    < asp:Label ID="addText" Text=" Add New Run" runat="server"></asp:Label> 
< /asp:LinkButton> 

Ce bouton de lien est utilisé pour importer/exporter des données. J'ai ajouté un attribut au clic de ce bouton de lien (AddNewRunLinkButton) pour afficher une barre de progression en utilisant la fonction javascript - SetInterval. Si je supprime cet attribut, l'image et l'étiquette seront affichées, sinon seul le bouton de lien sera affiché.

AddNewRunLinkButton.attributes.add("onclick","javascript:DisplayProgress()"); 

function DisplayProgress() 
{ 
    timeid = setInterval("addBlock",100) 
} 

function Addblock() 
{ 
// Display a progress bar as follows - Increase the width of a div tag at this interval 
} 

Une aide?

+0

Certains exemples de code seraient agréables à voir si vous voulez de l'aide. –

+0

voir l'extrait de code ci-dessus ... dans cette image et l'étiquette ne s'affiche pas après la publication –

+0

Ce code ne sera même pas afficher une image en premier lieu. Vous avez vraiment besoin de nous donner quelque chose de plus pour continuer. –

Répondre

0

Comme vos exemples de code ne donnent pas grand chose, je poste quelque chose que je pense être ce que vous essayez de faire.

Markup et Javascript:

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Untitled Page</title> 
    <script language="javascript" type="text/javascript"> 
    var timeID = null; 
    var width = 0; 

    function DisplayProgress() { 
     timeID = setInterval('AddBlock();', 100); 
    } 

    function AddBlock() { 
     var p = document.getElementById("progressDiv"); 
     if (width < 1000) { 
     width += 100; 
     p.style.width = width + "px"; 
     } 
     else 
     timeID = clearInterval(timeID); 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:LinkButton runat="server" ID="lbAddNewRun" OnClick="lbAddNewRun_Click"> 
     <img src="--url to an image--" alt="Add New Run" /> 
     Add New Run 
     </asp:LinkButton> 
    </div> 
    <div id="progressDiv" style="background-color: Green; width: 0px; height: 20px;"></div> 
    </form> 
</body> 
</html> 

code-behind:

protected void Page_Load(object sender, EventArgs e) 
{ 
    lbAddNewRun.Attributes.Add("OnClick", "javascript:DisplayProgress();"); 
} 

protected void lbAddNewRun_Click(object sender, EventArgs e) 
{ 
    // Export/Import code. 
} 

Cela ne veut pas "cacher" l'image, pour moi atleast.

Remarque:
Au lieu d'ajouter l'événement OnClick dans le code-behind, vous pouvez l'ajouter directement dans le balisage car il est pas créé dynamiquement:

 <asp:LinkButton runat="server" ID="lbAddNewRun" OnClick="lbAddNewRun_Click" OnClientClick="DisplayProgress();"> 
     <img src="--url to an image--" alt="Add New Run" /> 
     Add New Run 
     </asp:LinkButton> 
+0

Salut Sani, Le code est plus ou moins similaire ... autre que les différences suivantes ... 1. Je n'utilise pas clearInterval, comme je veux commencer à partir de 0, si la largeur atteint 1000. 2. J'ai un asp: contrôle d'étiquette après le contrôle de l'image ... qui contiennent le texte comme - "Ajouter une nouvelle exécution" Quand j'ai regardé dans la source de vue ... suis capable de voir une ancre tag au lieu de bouton de lien ... et nno commandes d'étiquette et d'image :(. La minuterie s'arrête comme la publication se produit dans mon cas ... ne pas utiliser clearInterval..will causer le problème? –

+0

Pourriez-vous poster le AddBlock fonction javascript? –

+0

function DisplayProgress (progressDiv) {var progressBar = document.getElementById ("ProgressBar"); timerId = setInterval ("addBlock ('" + progressDiv + "')", 100);} fonction addBlock (progressDiv) {var progrès = document.getElementById (progressDiv); progress.style.align = "gauche"; var width = parseInt (progress.style.width); if (largeur <500) {progress.style.width = largeur + 10 + "px"; } else {progress.style.width = "0px"; } progress.style.backgroundColor = 'bleu'; progress.style.cssFloat = 'gauche'; Progress.style.styleFloat = 'gauche'; } –

0

J'utiliser appel Async pour montrer la barre de progression par opposition à ce que vous faites ici. Parfois, lorsque vous joignez les événements côté client et côté serveur, le rendu de la page ne fonctionne pas comme prévu. Dans ce cas, vous utilisez un timer Javascript avec SetInterval et je crois que cela provoque la disparition de l'étiquette.

Questions connexes