我有一个像这样的数据主义者:
<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以显示弹出窗口。
答案 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
希望这有帮助。