我正在尝试实现对出现在每行的 Gridview 中的 Javascript 函数的调用。该代码生成一个可以单击的按钮并显示一个图像编辑器实例(Adobe 的 Aviary)。
因为我没有唯一的变量名称,所以每次都会出现相同的图像,如果我尝试在独立页面上执行此操作并更改每个图像的 Javascript 变量名称,则代码有效,所以我不确定该怎么做我不知道如何制作唯一的变量引用。
我不能将 document.getElementByID 部分内联作为函数的参数,因为我无法转义单引号。
3个javascript变量是
editImageControl editImageURL editImageFilename
<asp:TemplateField HeaderText="Edit Photo">
<ItemTemplate>
<asp:Image ID="editImage" runat="server" ImageUrl='<%# "http://images.foo.com/" & Eval("filename") %>' CssClass="noDisplay" />
<script>
var editImageControl = document.getElementById('<%# DirectCast(Container, GridViewRow).FindControl("editImage").ClientID%>');
var editImageURL = document.getElementById('<%# DirectCast(Container, GridViewRow).FindControl("editImage").ClientID%>').src;
var editImageFilename = '<%# Eval("filename") %>';
</script>
<!-- Add an edit button, passing the HTML id of the image and the public URL of the image -->
<p><input type='image' runat="server" src='http://images.aviary.com/images/edit-photo.png' value='Edit photo' onclick="return launchEditor(editImageControl, editImageURL, editImageFilename);" /></p>
</ItemTemplate>
</asp:TemplateField>