- 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
|
|
|
|