Asp.net 如何将数据列表中控件的值传递给JavaScript?
我有这样一个数据列表:Asp.net 如何将数据列表中控件的值传递给JavaScript?,asp.net,javascript,vb.net,datalist,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
<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。有一件事可以做,那就是稍微修改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
希望这有帮助