- PR -

Template

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-10-07 16:04
今、DataGridにテンプレートを追加し、そこにHyperLinkをセットしました。
DataTbleをbindしたとき、下記の関数の中で
HyperLinkのNavigationUrlを指定したいのですが、どうしたらよいでしょうか?

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

'ここをどう記述したらよいのでしょうか?
e.Item.Cells(0).FindControl("HyperLink")


End Sub
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-10-07 16:12
Dim objHyper As HyperLink = New HyperLink()
objHyper = e.Item.FindControl("HyperLink")
objHyper.NavigateUrl = "http://www.yahoo.co.jp"
objHyper.Text = "yahoo"

このようにやってみたのですが、
"オブジェクト参照がオブジェクト インスタンスに設定されていません。"
というメッセージが出力されてしまいます。
ophiuchus
会議室デビュー日: 2003/08/27
投稿数: 11
投稿日時: 2003-10-07 17:18
これで如何でしょうか?

コード:
Dim objHyper As HyperLink

If e.Item.ItemIndex >= 0 Then
    objHyper = e.Item.FindControl("HyperLink")
    objHyper.NavigateUrl = "http://www.yahoo.co.jp"
    objHyper.Text = "yahoo"
End If


damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-10-09 12:19
下記の様にやってみましたが、結果は同じでした。

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

Dim objHyper As HyperLink

If e.Item.ItemType = ListItemType.Header Then

ElseIf e.Item.ItemType = ListItemType.Item Xor e.Item.ItemType = ListItemType.AlternatingItem Then

Dim sUrl As String = "http://www.yahoo.co.jp"

If e.Item.ItemIndex >= 0 Then
objHyper = e.Item.FindControl("HyperLink")
objHyper.NavigateUrl = sUrl
objHyper.Text = "yahoo"
End If

End If

End Sub

引用:

ophiuchusさんの書き込み (2003-10-07 17:18) より:
これで如何でしょうか?

コード:
Dim objHyper As HyperLink

If e.Item.ItemIndex >= 0 Then
    objHyper = e.Item.FindControl("HyperLink")
    objHyper.NavigateUrl = "http://www.yahoo.co.jp"
    objHyper.Text = "yahoo"
End If




damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-10-09 12:23
FindControlの引数にはHyperLinkのIDを設定するべきなのですが
違うIDをセットしていたため、下記メッセージが表示されていました。
単純なミスでした。
すみませんでした。

引用:

damepgさんの書き込み (2003-10-09 12:19) より:
下記の様にやってみましたが、結果は同じでした。

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

Dim objHyper As HyperLink

If e.Item.ItemType = ListItemType.Header Then

ElseIf e.Item.ItemType = ListItemType.Item Xor e.Item.ItemType = ListItemType.AlternatingItem Then

Dim sUrl As String = "http://www.yahoo.co.jp"

If e.Item.ItemIndex >= 0 Then
objHyper = e.Item.FindControl("HyperLink")
objHyper.NavigateUrl = sUrl
objHyper.Text = "yahoo"
End If

End If

End Sub

引用:

ophiuchusさんの書き込み (2003-10-07 17:18) より:
これで如何でしょうか?

コード:
Dim objHyper As HyperLink

If e.Item.ItemIndex >= 0 Then
    objHyper = e.Item.FindControl("HyperLink")
    objHyper.NavigateUrl = "http://www.yahoo.co.jp"
    objHyper.Text = "yahoo"
End If






1

スキルアップ/キャリアアップ(JOB@IT)