- PR -

[ASP.NET]URLエンコードされたリンク先が正常に開かない

投稿者投稿内容
kinu
常連さん
会議室デビュー日: 2007/10/24
投稿数: 34
投稿日時: 2007-10-30 22:42
いつもお世話になってます!
ASP.NETを使用してWEBアプリを作成しています。
GridViewを使用してその中のHyperLinkFieldからファイル(日本語)をリンクさせる
というものです。

この時HyperLinkFieldで設定したファイルがURLエンコードされ正常に開かない
ようです。エンコードの文字コードもshift_jisやUTF-8などいろいろ試してみま
した。何か良い方法はないでしょうか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-31 08:20
本来はURLエンコードされてないといけないんですけどね。

普通のHyperLinkでも自動でエンコードされますね。これを調整するプロパティがあるかは調べてませんが
<a id="link" runat="server" href='<%# Eval("name") %>' >リンク</a>
とかするしかないんですかねえ。
kinu
常連さん
会議室デビュー日: 2007/10/24
投稿数: 34
投稿日時: 2007-10-31 09:05
べるさん、ありがとうございます。

元のデータベースが複数あり、そのデータを確認してGridViewのフィールド
形式を設定してからGridViewに引っ付けています。

この場合教えていただいた方法で作ろうとしたらどのようにしたらいいのでしょうか?
よければ教えてください。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-31 10:48
引用:
元のデータベースが複数あり、そのデータを確認してGridViewのフィールド
形式を設定してからGridViewに引っ付けています。

これをどうやっているかによります。
あ、上記の <a タグはTemplateFieldに書くという意味でした。

しかし、こちらではURLエンコードされていても、EXCELとかPDFが正常に開けるんですがね。
kinu
常連さん
会議室デビュー日: 2007/10/24
投稿数: 34
投稿日時: 2007-10-31 14:06
XMLファイルでGridViewの設定ファイルがあり

1.WEBを開くとXMLをよむ
2.GridViewフィールドの設定を行う。
3.DataTableにデータベースをほりこむ
4.GridViewにBINDする。

という感じです。アバウトすぎますでしょうか?

開ける開けないという状況は文字数が影響しているようです。
長いファイル名は開けませんでした。


べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-31 14:54
引用:
2.GridViewフィールドの設定を行う。

.aspxファイルにフィールドの定義を記述しているのではなく
GridView1.Columns.Add(〜);
みたいに動的に追加してるということですか?TemplateFieldを動的に追加するには
(多分)ITemplateを実装したクラスを定義しておかなきゃいけないので、面倒くさいといえば面倒くさいですね。

引用:
開ける開けないという状況は文字数が影響しているようです。
長いファイル名は開けませんでした。

当方ではtxt,pdf,xlsともに100文字以上あっても開けました。何のファイルですか?
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-10-31 16:11
2083文字以下という制限はあるようですが。。。
http://support.microsoft.com/kb/208427/ja

これ以上長くなってる、ということではないですよね。
kinu
常連さん
会議室デビュー日: 2007/10/24
投稿数: 34
投稿日時: 2007-10-31 17:29
べるさん、どっとねっとふぁんさんありがとうございます。
文字は200文字くらいでだめになってしまいます。

エラーとしては
 ●EXCELファイル
  1.CドライブのTemporary internetFilesというフォルダを見に行ってしまい
   ファイルがありませんといわれます。
 ●WORDファイル
  1.ファイル名が途中できれてしまいます。

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