- PR -

TABLEにDBから取得した文字列をハイパーリンクさせて貼りたい

投稿者投稿内容
ふくひろ
会議室デビュー日: 2006/07/23
投稿数: 3
投稿日時: 2006-07-23 14:21
初心者ですが、よろしくお願いします。
ASP.NET1.1(VB)+SQLserver2000でプログラムしています。
HTMLで(1)のテーブルをつくり、そこに(2)のようにデータベースからのデータを流し込んでいますが、その取得したデータの文字列にハイパーリンクを貼ろうとしてもなかなかうまくいきません。<A href="test.html">をNew LiteralControlの後ろに記述しようとしてもエラーになってしまいます。Datagridを使えば簡単に処理できるところなのですが、できたらテーブルを使ってやる方法で試したいという思いがあります。よろしくお願いします。

(1)
<table id="TABLE1" style="WIDTH: 800px; HEIGHT: 32px" cellSpacing="0" cellPadding="3" width="800" border="1" runat="server">
  <tr bgColor="#cccccc"><td width="30">No.</td>
<td width="150">事例名</td>
<td width="100">作成者</td>
<td width="200">所属</td>
  </tr>
</table>

(2)
Dim row As HtmlTableRow
Dim cell As HtmlTableCell
row = New HtmlTableRow
dr.Read()
cell = New HtmlTableCell
cell.Controls.Add(New LiteralControl(dr("jirei_no")))
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-07-23 14:54
引用:
その取得したデータの文字列にハイパーリンクを貼ろうとしても

上記ソースのどこがこれをやろうとしている箇所なのですか?

引用:
<A href="test.html">をNew LiteralControlの後ろに記述しようとしてもエラーになってしまいます。

どんなエラーですか?

引用:
cell.Controls.Add(New LiteralControl(dr("jirei_no")))

dr("jirei_no")の型は何で、どんなデータが入っていますか?
とりあえず
New LiteralControl(dr("jirei_no").ToString())
かな?
ふくひろ
会議室デビュー日: 2006/07/23
投稿数: 3
投稿日時: 2006-07-23 19:51
返信ありがとうございます。
ハイパーリンクを設定しようと思っているのは下の箇所で
cell.Controls.Add(New LiteralControl(dr("jirei_no")))の(dr("jirei_no"))
の部分です。
Dim cmd As New AqlCommand("select * from jirei,cn)
Dim dr As SqlDataReader=cmd.ExecuteReader
で変数宣言しました
データの中はstring文字列です。

構文が間違っているのかと思うのですが
cell.Controls.Add(New LiteralControl(dr("jirei_no")))
のところを例えば
cell.Controls.Add(New LiteralControl("<A href=link.html>"&dr("jirei_no")&"</A>"))
としてもだめでした。
エラーはVB.netからデバックするとビルドエラーが発生しました。
よろしくお願いします。




囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-07-23 20:19
エラーメッセージの内容をしっかり書き、自分としてはココはこういう結果を期待しているとしっかり書くと答えを得やすいでしょう。

ところで、
引用:

エラーはVB.netからデバックするとビルドエラーが発生しました。


ビルドが出来ていない状態だと、デバッグなど当然出来ません。正確にお願いします。

_________________
囚人のジレンマな日々
ふくひろ
会議室デビュー日: 2006/07/23
投稿数: 3
投稿日時: 2006-07-23 21:17
ありがとうございます。

ビルドエラーになるのは、やろうとしていることがサポートされていないか構文が間違っているかと思っているのですが、<a>タグを入れるとビルドエラーになることが問題のところです。SQLserverからのデータを読み込んでHTMLのtableのセルに表示させる際に<a>タグをつけてハイパーリンクを設定したいのですが、やはりwebフォームを使わないと無理なのでしょうか。

何もかもがわかっておらず、申し訳ございませんでした。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-07-23 21:21
で、コンパイラは何て教えてくれていますか?エラーならば、エラーメッセージが出ていますよね?
_________________
囚人のジレンマな日々
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-07-24 03:37
引用:
エラーはVB.netからデバックするとビルドエラーが発生しました。

VisualStudio使ってるなら、ビルドエラーはエラーウインドウみたいなとこに出てると
思いますがそこに何とかいてあります?実はビルドは通っててランタイムエラーに
なっているんだったらその内容は何か。そもそもエラーとなっている行はどれか。
(提示されているコードは省略しているような感じがします)

引用:
やはりwebフォームを使わないと無理なのでしょうか。

webフォーム使うってどういう意味ですか?
HtmlコントロールでなくてWebコントロールってことですか?それなら
Htmlコントロールでもできると思いますよ。

#New LiteralControl(dr("jirei_no"))
#ぁ、VBってこれはコンパイル通るんだ。。

[ メッセージ編集済み 編集者: べる 編集日時 2006-07-24 03:38 ]
eternia
常連さん
会議室デビュー日: 2006/02/23
投稿数: 42
投稿日時: 2006-07-24 11:12
HyperLinkコントロールを作成して
テーブルに追加する方法でうまくいきませんでしょうか?

Dim link As HyperLink = New HyperLink
link.Text = Convert.ToString(dr("jirei_no"))
link.NavigateUrl = "link.html"

cell.Controls.Add(link)

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