Je souhaite attribuer une variable csharp à l'élément de la page ASP à l'aide de javascript. Il semble que l'assignation ne fonctionne pas dans mon code.Comment affecter une variable C# à un élément asp à l'aide de javascript
Ici, il est:
document.getElementById('lbAccessories').innerHTML = '<%#SelectLabel%>';
Dans mon code asp i utiliser:
<asp:LinkButton ID="lbAccessories" runat="server" />'
Je ne peux pas affecter la valeur directement au linkbutton à l'aide Text='<%#SelectLabel%>'
parce que je veux le rendre plus intelligent .
Est-ce que quelqu'un sait comment faire avec ça?
Merci
Edit:
Voici mon code, je l'ai essayé d'utiliser <%=lbAccessories.clientId%>
, mais il génère une erreur: lbAccessories n'existe pas dans le contexte.
<script type="text/javascript">
function function(Ref) {
if ('<%=TextBoxClientID%>' == 'txtLink')
{
document.getElementById('lbAccessories').innerHTML = '<%#SelectLabel%>';
}
else if ('<%=TextBoxClientID%>' == 'btnSearch') {
document.getElementById('lbAccessories').innerHTML = '<%#ViewDetail%>';
}
}
</script>
Edit:
<asp:GridView ID="gv1" AutoGenerateColumns="false" runat="server"
AllowPaging="true" OnPageIndexChanging="pic">
<Columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:LinkButton ID="lbAccessories" runat="server" OnClientClick='<%#string.Format("passAccessory(\"{0}\");", Eval("Ref"))%>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Edit:
Merci beaucoup pour tous ceux qui ont posté les suggestions.
J'ai changé le code javascript à ce qui suit:
<script type="text/javascript">
function passAccessory(accessoryRef) {
if ('<%=TextBoxClientID%>' == 'txtLink') {
document.getElementById('<%= gvAccessories.FindControl("lbAccessories").ClientID %>').innerHTML = '<%#SelectLabel%>';
}
else if ('<%=TextBoxClientID%>' == 'btnSearch') {
document.getElementById('<%= gvAccessories.FindControl("lbAccessories").ClientID %>').innerHTML = '<%#ViewDetail%>';
}
}
</script>
dans le fichier *.aspx.cs
, j'ai ajouté: protected LinkButton lbAccessories { get; set; }
Il jette une exception:
Object reference not set to an instance of an object
Quelqu'un a des idées? Merci beaucoup
Edit:
Enfin, nous l'avons fait avec le code csharp. C'est plus flexible et gérable. Mon collègue m'a aidé. Merci à tous pour votre aide!!!
Le javascript est en cours d'exécution avant que le bouton de lien a été ajouté au DOM – cspolton
Vous semblez vouloir définir le texte pour le 'LinkButton' lorsque vous cliquez dessus, mais le bouton sera POST revenir à la serveur lorsque cliqué. c'est ce que tu veux? – cspolton
Ceci est un contrôle utilisateur. Les différentes pages incluent le contrôle de l'utilisateur. Mais la vue est un peu différente lorsque différentes pages sont chargées. Donc, je veux utiliser javascript pour juger des conditions différentes et pour afficher un contenu différent dans le 'LinkButton' qui se trouve dans une grille. –