【问题标题】:Check if one item in listbox was clicked twice?检查列表框中的一项是否被点击了两次?
【发布时间】:2011-11-30 02:12:22
【问题描述】:

是否可以检查一个项目是否在 asp 列表框中多次单击?我正在使用 onSelectedIndexChanged 事件...但我需要查看是否多次单击 SAME 项目。有什么活动吗?

【问题讨论】:

    标签: c# asp.net listbox click


    【解决方案1】:

    如果您使用的是onSelectedIndexChanged,这意味着您的列表框将在用户每次点击选项时发回。如果您想跟踪用户是否多次单击同一选项,您可以保留以前单击的项目的列表并将其存储在 ViewState 中。

    只要您存储的数据很小且可序列化,那应该没问题。

    所以为了保持用户点击的值的运行列表,这样的事情应该可以工作

    public List<string> previouslyClickedOptions {
        get {
           if (ViewState["prevClicked"] == null)
               ViewState["prevClicked"] = new List<string>();
           return (List<string>)ViewState["prevClicked"];
        }
    }
    

    在您的 SelectedIndexChanged 中:

    string currentlySelected = myLB.SelectedValue;
    bool clickedBefore = previouslyClickedOptions.Contains(currentlySelected);
    if (!clickedBefore)
       previouslyClickedOptions.Add(currentlySelected);
    

    【讨论】:

      【解决方案2】:

      与 Adam 的答案相同,但添加了 SessionState。

      public List<int> previouslyClickedOptions{
          get {
             if (Session["prevClicked"] == null)
                 Session["prevClicked"] = new List<int>();
             return (List<int>)Session["prevClicked"];
          }
      }
      

      【讨论】:

        【解决方案3】:

        adam 关于自动回发更改是一种选择是正确的。如果那是您已经在做的事情,那么进行这种跟踪是有意义的。不过,该属性实际上称为 AutoPostBack,而不是 onSelectedIndexChanged,当有帖子表明控件的值与最初提供时不同时,您可以处理该事件。

        不过,您可能不想在每次点击控件时都回帖。这是浏览器和服务器之间来回的大量通信。我建议,如果你想计算点击次数,你最好在客户端上使用 javascript 并在该脚本中更新表单中隐藏的输入,并使用当表单发布为合法时发布的计数理由而不是让它张贴超出必要的方式。

        这将为您节省带宽和服务器负载,感觉是一种更好的方法。

        【讨论】:

        • 好吧,每次有人单击列表框中的两个不同项目时,它都会将它们从该列表框中删除并显示在单独的列表框中,可以说是“配对”在一起。我不应该使用回发吗?
        • 我也会为此使用脚本。在客户端上添加和删除列表控件并不复杂。
        【解决方案4】:

        我更喜欢使用 javascript 或 jquery 进行此检查。毕竟这只是一个警告。

        【讨论】:

          猜你喜欢
          • 2011-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-23
          • 1970-01-01
          • 2021-03-08
          • 1970-01-01
          相关资源
          最近更新 更多