0

我有一个 Telerik RadGrid,它包含三个列,其中包含 OrderNo、SendToAddress 和 ResendLink 的 UniqueName。

我想要一个超链接列,在单击时调用 JavaScript 函数,将超链接所在行的值作为参数传递给函数。

以下代码有效,但仅在页面上一次。后续刷新,方法抛出异常(itemData 为空)。 注意:sSearchResults 是一个 POCO,用作数据传输对象以返回列数据。

    Protected Sub dg2_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles dg2.ItemCreated
    If TypeOf e.Item Is GridDataItem Then
        ' Setup the Resend Link
        Dim item As GridDataItem = CType(e.Item, GridDataItem)
        Dim itemData As sSearchResults = CType(item.DataItem, sSearchResults)
        Dim resendLink As HyperLink = DirectCast(e.Item.FindControl("ResendLink"), HyperLink)
        resendLink.Attributes("href") = "javascript:void(0);"
        resendLink.Attributes("onclick") = [String].Format("return ShowResendForm('{0}','{1}');",
                                                           itemData.OrderNo,
                                                           itemData.SendToAddress)
    End If
End Sub

如果我将上面的代码移动到网格上的 ItemDataBound 事件并将 EnableViewState 设置为 false,我怀疑上面的代码会可靠地工作。我还没有尝试过,我不想这样做。

使用 RadGrid 获取行数据列字符串以填充另一列的正确方法是什么?

4

1 回答 1

0

相反,我解决了这个问题,而是指定了我需要从ASPX 中的ItemCreated方法以编程方式访问的所有列。DataKeyNames

然后,在ItemCreated事件处理程序中,我可以像这样访问这些值:

e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("OrderNo")
于 2013-06-12T22:42:19.803 回答