gridview重定向onclick参数

时间:2017-08-21 14:25:43

标签: c# asp.net gridview onclick url-redirection

我有一个gridview,其中包含10列以及基于所选日期的任意行数。 gridview看起来像这样: enter image description here

可以选择多个参数来生成此gridview。我正在尝试在onClick列上实施Weight Ticket事件。我希望能够点击单个重量票,页面将重定向到显示重量票详细信息的不同页面。

我已尝试实施以下内容: e.Row.cells[4].Attribute["onClick"] = redirectFunction

那没有做任何事情。我无法点击重量票。

我真的很感激任何帮助。

可选要求

这不是我的问题,但我希望能够为此添加其他内容。重定向完成如下:

Response.Redirect("~/pages/TicketDetails.aspx?wt=" + weightTicket + "&act=" + actionMethod +"&src=" + HttpContext.Current.Request.Url);

actionMethod决定TicketDetails页面是否允许编辑。如果actionMethod设置为View,则无法对其进行编辑。如果设置为Edit,则可以。我希望能够动态地告诉重定向函数它是一个视图操作或编辑操作。

您可以查看InOutLoad #列。如果其中任何一方拥有NA,那么这是edit行动。如果它们的值不是NA,那么它就是一个视图。这只是一个额外的请求。我总是可以打开它作为编辑而不用担心这一切,但如果我也可以做到这一点会有所帮助。

任何帮助都将不胜感激。

谢谢

编辑1:
我在问题中写的这句话(我的尝试)只是一个伪代码。这是我程序中的实际行:

e.Row.Cells[4].Attributes["onClick"] = "dataCellClick(" + e.Row.Cells[4].ToString() + ", view;";

dataCellClick()是我调用的函数,它反过来执行重定向。我试过不调用一个函数,但在这里调用重定向函数,但是没有用。所以我尝试了这个。函数调用的两个参数是WeightTicketactionMethod

编辑2:
已经存在的gridview是动态的。我的意思是:

enter image description here

这是我的设计师视图对于页面的看法。在图像中选择了网格视图。它没有逐一列出所有列。它从查询中动态获取列和行。

所以,这些都是我拥有的所有事件处理程序属性:

enter image description here

我可以告诉你很多:
gridview中始终存在以下列:

  1. 停止
  2. 加载#
  3. 供应商名称
  4. 重量票
  5. 供应商BOL
  6. 卡车总计
  7. 产品网
  8. 这些列是标准的,按此顺序排列。

2 个答案:

答案 0 :(得分:2)

这部分代码不正确:

e.Row.cells[4].Attribute["onClick"] = redirectFunction

您应该在RowDataBound中编辑这样的内容(我认为e.Row.Cells[4].Text是页面名称):

 e.Row.Cells[4].Attributes["onClick"] = "redirectFunction('"+e.Row.Cells[4].Text+"')";

redirectFunction是这样的JavaScript函数(重定向到pageName.aspx):

<script>
    function redirectFunction(pageName) {
        window.location.href = pageName + ".aspx";
    }
</script>

答案 1 :(得分:0)

我建议使用CellClick事件并检查点击的列索引是否是“Weight Ticket”之一(这是VB.NET):

Private Sub dgwList_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgwList.CellClick
    If e.ColumnIndex = 4 Then
        Call MyRedirectFunciton()
    End If
End Sub

在C#中, 应该是这样的:

private void dgwList_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 4) {
        MyRedirectFunciton();
    }
}

当然,你也可以传递一个RowIndex ......

CellClick: enter image description here