c# - Asp GridView 在整行上触发 Click 事件

标签 c# asp.net gridview

我有一个 GridView,它有 IDNameType

代码隐藏:

protected void gridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(this.gridView, "Select$" + e.Row.RowIndex);
    }
}

public void gridView_Command(object sender, GridViewCommandEventArgs e)
{
   // some code here //
}

GridView:

<asp:GridView ID="gridView" runat="server" OnRowCommand="gridView_Command" />
<columns>
    <asp:BoundField DataField="ID" />
    <asp:HyperLinkField DataTextField="Name" />
    <asp:BoundField DataField="Type" />
</columns>

由于 HyperlinkField,Name 可以点击。这里的问题是我不希望在单击该行时触发 gridview_Command。我只想要 Name 字段。例如,如果单击 Type 的列,则不要触发 gridView_Command

最佳答案

目前还不清楚您要实现的目标,但如果我理解正确的话,您需要更改一些内容。

  1. 您需要将列包装在 <asp:Gridview> 内标签。
  2. 您需要连接您的 RowDataBound 事件。
  3. 您需要创建一个模板列,以便您可以使用 CommandName 参数。
  4. 您需要在事件中过滤 CommandName 参数,以便仅响应来自所需控件的点击。

<asp:GridView ID="gridView" runat="server" OnRowDataBound="gridView_RowDataBound" OnRowCommand="gridView_Command" AutoGenerateColumns="false" > <columns> <asp:BoundField DataField="ID" /> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="lb1" runat="server" Text='<%# Eval("Name") %>' CommandName="NameButton" CommandArgument='<%# Eval("ID") %>' /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="Type" /> </columns> </asp:GridView>

public void gridView_Command(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "NameButton")
    {
        var id = e.CommandArgument;

        // some code here //
    }
}

使用此示例,您可以仅响应单击“NameButton”的事件。

关于c# - Asp GridView 在整行上触发 Click 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956906/

相关文章:

c# - 为什么 MemoryCache 中的滑动过期行为如此奇怪?

c# - 无法理解枚举的行为

c# - 通过示例了解六角形端口和适配器的概念

c# - 为整个 Controller 指定 [HttpGet]、[HttpPost] 或 [AcceptVerbs]

javascript - 合并来自用户控件的 pageLoad() 代码?

asp.net - 是否可以在 Windows 8 上安装 IIS 7.5 或 7

asp.net - 如何在中继器内绑定(bind)gridview?

将鼠标悬停在工具提示单元格上时,JQuery 工具提示会跳转 gridview 中的行 - 如何防止?

c# - 在 GridView 中使用自动生成的列提取列数和标题文本

c# - asp.net 网络服务器是否为每个请求运行一个新的网络应用程序实例?