单击事件不从后面的代码触发

时间:2014-04-01 12:52:40

标签: javascript asp.net vb.net

在我的代码中,我的("OnClick")没有被解雇。有谁知道为什么?

e.Row.Cells(1).Attributes("OnClick") = "window.location.href='MachineSweepLite.aspx?AreaID='" _
   + GridView1.DataKeys(e.Row.RowIndex).Values("ID").ToString()



Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        e.Row.Cells(1).Attributes("onmouseover") = "this.style.cursor='hand';this.style.textDecoration='underline';"
        e.Row.Cells(1).Attributes("onmouseout") = "this.style.textDecoration='none';"
        Dim Index As Integer = e.Row.RowIndex
        e.Row.Cells(1).Attributes("OnClick") = "window.location.href='MachineSweepLite.aspx?AreaID='" + GridView1.DataKeys(e.Row.RowIndex).Values("ID").ToString
    End If
End Sub

以上编辑。

2 个答案:

答案 0 :(得分:1)

您的属性中存在错误,因为您要在结束单引号后添加ID 的值...

例如,如果ID为12,则您将其发送到浏览器...

window.location.href='MachineSweepLite.aspx?AreaID='12

请注意,12不是网址的一部分。

您应该拥有以下内容......

e.Row.Cells(1).Attributes("onclick") =
  string.Format("window.location.href='MachineSweepLite.aspx?AreaID={0}';",
  GridView1.DataKeys(e.Row.RowIndex).Values("ID").ToString())

另请注意,从.NET 4.0开始,跨越多行时不必使用_字符。

答案 1 :(得分:0)

 e.Row.Attributes("onClick") = "CallFunction('" & Convert.ToString(GridView1.DataKeys(e.Row.RowIndex).Values("ID")) & "');"

JS代码:

function CallFunction(val)
{
   // do your login here
}