如何将datalist中控件的值传递给JavaScript?

时间:2009-08-16 07:09:21

标签: asp.net javascript vb.net datalist

我有一个像这样的数据主义者:

 <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>

我想将imagePhoto的src传递给函数showLayerUpLoad()。我怎么能这样做。我可以在ItemCreated事件中执行此操作。任何人都可以帮忙吗?showLayerUpLoad()在javascript中是fn以显示弹出窗口。

1 个答案:

答案 0 :(得分:1)

你可以做的一件事就是修改一下javascript函数。让它拿一个论点。

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.
}

在你的代码后面处理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

希望这有帮助。