我有一个gridview
,其中包含10列以及基于所选日期的任意行数。 gridview
看起来像这样:
可以选择多个参数来生成此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
,则可以。我希望能够动态地告诉重定向函数它是一个视图操作或编辑操作。
您可以查看In
,Out
或Load #
列。如果其中任何一方拥有NA
,那么这是edit
行动。如果它们的值不是NA,那么它就是一个视图。这只是一个额外的请求。我总是可以打开它作为编辑而不用担心这一切,但如果我也可以做到这一点会有所帮助。
任何帮助都将不胜感激。
谢谢
编辑1:
我在问题中写的这句话(我的尝试)只是一个伪代码。这是我程序中的实际行:
e.Row.Cells[4].Attributes["onClick"] = "dataCellClick(" + e.Row.Cells[4].ToString() + ", view;";
dataCellClick()
是我调用的函数,它反过来执行重定向。我试过不调用一个函数,但在这里调用重定向函数,但是没有用。所以我尝试了这个。函数调用的两个参数是WeightTicket
和actionMethod
。
编辑2:
已经存在的gridview是动态的。我的意思是:
这是我的设计师视图对于页面的看法。在图像中选择了网格视图。它没有逐一列出所有列。它从查询中动态获取列和行。
所以,这些都是我拥有的所有事件处理程序属性:
我可以告诉你很多:
gridview中始终存在以下列:
这些列是标准的,按此顺序排列。
答案 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 ......