2009-08-16 5 views
-1

Ich habe eine Datenliste wie folgt aus:.?Wie kann ich den Wert eines Steuerelements in einem Datengeber an JavaScript übergeben?

<asp:DataList ID="dl" runat="server" Width="301px" onitemcommand="dl_ItemCommand"> 
    <ItemTemplate> 
     <table style="border:solid 1 #CCCCCC" > 
      <tr align="left"> 
       <td align="left"> 
       <img id="imgPhoto" runat="server" 
       alt="Company Logo" 
       border="0" 
       align="middle" 
       style="border:solid 5px #CCCCCC;height:10px"src='<%#GetImage(Eval("ImageName")) %>' 
                  /> 
    <asp:HiddenField id="hdnImg" runat="server" Value='<%#Eval("ImageName") %>'/> 
     </td> 
     </tr> 
    <tr align="center"> 
     <td align="center"> 


<asp:LinkButton ID="lnkChangeLogo" runat="server"                 Text="ChangeLogo" OnClientClick="javascript:showLayerUpLoad();return false;">  </asp:LinkButton> 
    <br /> 
    <asp:LinkButton ID="lnkRemoveLogo" runat="server"                Text="RemoveLogo" OnClientClick="javascript:ConfirmChoice();return false;"/> 
             </td> 
           </tr> 
          </table>     
        </ItemTemplate> 

       </asp:DataList> 

I src von imagePhoto übergeben wollen showLayerUpLoad() funktioniert Wie ich that.Can tun kann ich tun dies in ItemCreated event.Can jemand helfen showLayerUpLoad() ist Fn in Javascript, um Popup anzuzeigen.

Antwort

1

Eine Sache, die Sie tun können dies die JavaScript-Funktion ein wenig ändern. Lass es ein Argument nehmen.

function showLayerUpLoad(ctrlid) 
{ 
myctrl = document.getElementById(ctrlid); //now you have a reference to your control 

alert(myctrl.value); //assuming its a hidden field control with some value in it. 
} 

In Ihrem Code hinter Griff des Elements Databound-Ereignis des Datalist:

Sub Item_Bound(sender As Object, e As DataListItemEventArgs) Handles DataList1.ItemDataBound 

    If e.Item.ItemType = ListItemType.Item Or _ 
     e.Item.ItemType = ListItemType.AlternatingItem Then 


     'Retrieve the hidden control in the current DataListItem. 
     Dim hf As HiddenField = _ 
      CType(e.Item.FindControl("YourHiddenFieldID"), HiddenField) 

    'Retrieve the link button in the current DataListItem. 
     Dim lb As Hidden Field = _ 
      CType(e.Item.FindControl("YourLinkButtonID"), LinkButton) 

     lb.OnClientClick = string.Format("javascript:ShowLayerUpLoad('{0}')", hf.ClientID) 


    End If 

    End Sub 

Hoffnung, das hilft.