質問
私は自分のコードのstring.formatを使用してインターネットを検索してきましたが、自分のコードで見える正しいものを見つけることができないようです。
DataColumn dtCol;
dtCol = new DataColumn("ImagePath", System.Type.GetType("System.String"));
dtImages.Columns.Add(dtCol);
dtImages.Columns["ImagePath"].Expression = string.Format("<a href=\"'{0}'+ImageFilename\">View Image</a>", ImageDownloadPath);
(ImageFileNameは私のデータベーステーブルの列です)上記のコードは常に「構文エラー:オペランドが欠落している」というエラーをスローします。
これを適切に行うにはどうすればよいですか?
解決 4
私を助けてくれてありがとう。私はそれをする方法を理解することができました。すべての投稿をありがとう。
他のヒント
おそらく次のことを試してみませんか?
string.Format("<a href=\"{0}\\{1}\">View Image</a>", ImageDownloadPath, ImageFilename);
あなたが使用しているあなたのコードで '
文字列形式の識別子の周りには、フォーマットされた文字列に表示されます。 ImageFilename
プロパティは正しく使用されていませんでした。単純にプレーンテキストとして追加されていたでしょう。
次の値を持つ文字列の結果は次のとおりです。
ImageFilename = "1.jpg";
ImageDownloadPath = "http://www.downloadme.com/images";
Yours: <a href="'http://www.downloadme.com/images'+ImageFilename">View Image</a>
Mine: <a href="http://www.downloadme.com/images/1.jpg">View Image</a>
質問からはまったく明確ではありませんが、問題は コンパイル時間 まったく...実際にはありません string.Format
. 。それは問題です DataColumn.Expression
. 。アングルブラケットを含む表現を提供しているので、比較を実行しようとしていると考えています。
私はたくさん知っているとは言えません DataColumn.Expression
, 、しかし、あなたはそれが文字列を引用する方法と、それが文字列内の引用を引用する方法を調べる必要があります!たとえば、これ そうかもしれない 仕事:
dtCol.Expression = string.Format
("'<a href=\"{0}'+ImageFilename+'\">View Image</a>'",
ImageDownloadPath);
しかし、私はあなたの人生を作る可能性が高いと思います 多く 最初から式でHTMLを計算しようとしなかった場合、よりシンプルです。あなたは本当に後で処理を適用できませんか?
これを試して:
dtImages.Columns["ImagePath"].Expression =
string.Format("<a href=\"'{0}'+ImageFilename\">View Image</a>", ImageDownloadPath);
<and>が表現の一部として解釈されようとしていると確信しています。