如何在不使用任何复选框的情况下选择数据列表中的多个图像?

发布于 2024-12-10 04:49:31 字数 634 浏览 2 评论 0原文

我有一个数据列表,

<asp:DataList ID="dlst1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5"
                                CellSpacing="8">
     <ItemTemplate>
           <asp:ImageButton ID="Image" runat="server" ImageUrl='<%#"~/Controls/handler1.ashx?FileName=" +DataBinder.Eval(Container.DataItem, "FilePath") %>'
                                        OnCommand="Select_Command" CommandArgument='<%# Eval("Id").ToString() +";"+Eval("FilePath")+";"+Eval("Index")+";"+Eval("FileName") %>' />

      </ItemTemplate>
  </asp:DataList>

如何选择多个图像?

I have a datalist

<asp:DataList ID="dlst1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5"
                                CellSpacing="8">
     <ItemTemplate>
           <asp:ImageButton ID="Image" runat="server" ImageUrl='<%#"~/Controls/handler1.ashx?FileName=" +DataBinder.Eval(Container.DataItem, "FilePath") %>'
                                        OnCommand="Select_Command" CommandArgument='<%# Eval("Id").ToString() +";"+Eval("FilePath")+";"+Eval("Index")+";"+Eval("FileName") %>' />

      </ItemTemplate>
  </asp:DataList>

How could i select multiple images?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

送君千里 2024-12-17 04:49:31

我可能会使用 jQuery 在客户端选择图像并在隐藏字段中维护选择。例如,

<asp:DataList ID="dlstImage" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" CellSpacing="8">
     <ItemTemplate>
           <img class="selImg" alt='<%# Eval("Id") %>' src='<%# ResolveUrl("~/Controls/ShowImage.ashx?FileName=") + Eval("FilePath") %>' />

      ...   
      </ItemTemplate>
</asp:DataList>
<input runat="server" id="imageSelection" />

与下面的 JS 一起使用

$(document).ready(function() {
   var store = $('#<%= imageSelection.ClientID %>');
   var selection = store.val().length > 0 ? store.val().split(",") : [];
   var images = $('.selImg');
   // Set the selection
   images.each(function() {
     var id = $(this).attr('alt');
     if (jQuery.inArray(id, selection) >= 0) {
        $(this).addClass('selected'); // selected CSS class will decide UI for selected image
     }
   });

   // add click handler
   images.click(function() {
     $(this).toggleClass('selected'); // toggle selection UI
     // modify selection
     selection = [];
     images.find('.selected').each(function() {
       selection.push($(this).attr('alt'));
     });
     // update the store
     store.val(selection.join(","));
   });
});

这是一个基本的(未经测试的)代码,应该可以帮助您入门。您可以尝试许多改进 - 例如在图像配置单元上设置焦点矩形、添加键盘支持、使用 html5 数据属性来存储 id 而不是 alt 属性等。

I would probably use jQuery to select images at client side and maintain the selection in the hidden field. For example,

<asp:DataList ID="dlstImage" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" CellSpacing="8">
     <ItemTemplate>
           <img class="selImg" alt='<%# Eval("Id") %>' src='<%# ResolveUrl("~/Controls/ShowImage.ashx?FileName=") + Eval("FilePath") %>' />

      ...   
      </ItemTemplate>
</asp:DataList>
<input runat="server" id="imageSelection" />

Use with below JS

$(document).ready(function() {
   var store = $('#<%= imageSelection.ClientID %>');
   var selection = store.val().length > 0 ? store.val().split(",") : [];
   var images = $('.selImg');
   // Set the selection
   images.each(function() {
     var id = $(this).attr('alt');
     if (jQuery.inArray(id, selection) >= 0) {
        $(this).addClass('selected'); // selected CSS class will decide UI for selected image
     }
   });

   // add click handler
   images.click(function() {
     $(this).toggleClass('selected'); // toggle selection UI
     // modify selection
     selection = [];
     images.find('.selected').each(function() {
       selection.push($(this).attr('alt'));
     });
     // update the store
     store.val(selection.join(","));
   });
});

This is a basic (untested) code that should get you started. There are many improvements that you can try - e.g. setting a focus rectangle on image hive, adding a keyboard support, using html5 data attribute to store id instead of alt attribute etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文