【问题标题】:ASP.NET Gridview: How can we find which column was selected in gridviewASP.NET Gridview:我们如何找到在 gridview 中选择了哪一列
【发布时间】:2009-10-26 19:57:19
【问题描述】:

我已经扩展了 Gridview 使其可点击(即,当我们点击任何被选中的行时,会根据所选行显示详细视图)。

然后我在 javascript 的帮助下添加了选择/取消选择该 GridView 中的所有复选框。现在的问题是每次我单击复选框时页面都会被回发。如果按下此特定列元素(即复选框),我不希望发生这种情况。

有什么方法可以让我知道在回发发生时选择了哪个列,以便我可以知道它是从具有复选框的列中发生的。

如果您对此有意见,请告诉我。

谢谢,

【问题讨论】:

  • 使整行可点击的代码是什么样的?它会产生回发吗?我还用 JavaScript 重新标记您的问题,因为您需要一个客户端解决方案来解决您的问题。

标签: asp.net javascript gridview


【解决方案1】:

我找到了解决我的问题的方法如下:

我们必须取消复选框中的事件冒泡,这样它就不会冒泡到 Gridview RowClicked 事件。

取消事件冒泡表单复选框的方法如下:

cb.Attributes("onclick") = "event.cancelBubble=true;"

其中 cb 是复选框。

希望这能帮助其他和我遇到同样问题的人,

谢谢,

【讨论】:

    【解决方案2】:

    我不确定您如何将复选框添加到 gridview 行,但如果您在服务器端执行此操作,请确保(或每个)复选框的 AutoPostback 属性设置为 false。如果设置为 true,一旦有人选中/取消选中您的一个复选框,您就会收到回发。

    【讨论】:

      【解决方案3】:

      我们可以在我们的gridview中添加复选框,下面是我们需要在GridView的Columns中的示例代码:

      <asp:TemplateField HeaderText="Select">
      <ItemTemplate>
          <asp:CheckBox ID="chkBxSelect" runat="server" AutoPostBack ="false" />
      </ItemTemplate>
      <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="50px" />
      <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="50px" />
      <HeaderTemplate>
          <asp:CheckBox ID="chkBxHeader" onclick="javascript:HeaderClick(this);" runat="server" />
      </HeaderTemplate>
      

      如果我们在 Gridview 的某些列中单击并且当我们在某些选定的列中单击时我们不回发,是否可以在 ASP.NET Gridview 中回发。

      例如我在 gridview 中有 3 列,如果我点击第 1 列和第 2 列,我想回发,如果我点击第 3 列,我不想回发。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-29
        • 2011-12-04
        • 2012-11-28
        • 1970-01-01
        • 2016-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多