【问题标题】:How to make entire Gridview Row clickable and open a new link?如何使整个 Gridview Row 可点击并打开一个新链接?
【发布时间】:2014-06-08 02:00:24
【问题描述】:

如何在 ASP.NET 中使整个 gridview 行可点击?

这是我目前正在尝试的:

  Protected Sub gv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
      e.Row.Attributes.Add("onclick", "location.href='URL.aspx'")
    End If
  End Sub

每行包含多个模板字段,因此在这种情况下,仅向该字段添加超链接是不够的。

【问题讨论】:

  • 你的代码是如何工作的?
  • 不确定this 是否是您要查找的内容。
  • @Jumpei 这不是我寻求帮助的原因。我知道这可以做到,就像我在记不起正确的语法之前所做的那样。
  • @equisde 感谢您的建议。不,不幸的是,这不起作用。我需要整行成为链接,而不仅仅是字段/列。
  • 不要忘记最后一个单引号。

标签: javascript c# asp.net vb.net gridview


【解决方案1】:

如何使用 .NET 和一点 javascript 魔术向 gridview 行添加超链接。


VB

  Protected Sub gv_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gv.RowDataBound
    If (e.Row.RowType = DataControlRowType.DataRow) Then
      Dim QueryString As String = DataBinder.Eval(e.Row.DataItem, "QueryString").ToString
      Dim NavigateURL As String = (ResolveUrl("~/URL.aspx?QueryString=" + QueryString))
      e.Row.Attributes.Add("onClick", String.Format("javascript:window.location='{0}';", NavigateURL))
      e.Row.Style.Add("cursor", "pointer")
    End If
  End Sub

C#

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) {
    if ((e.Row.RowType == DataControlRowType.DataRow)) {
        string QueryString = DataBinder.Eval(e.Row.DataItem, "QueryString").ToString;
        string NavigateURL = ResolveUrl(("~/URL.aspx?QueryString=" + QueryString));
        e.Row.Attributes.Add("onClick", string.Format("javascript:window.location=\'{0}\';", NavigateURL));
        e.Row.Style.Add("cursor", "pointer");
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多