ドリンクバーゲン会場

ASP.NETからデータをアップロード2012年02月07日 15時03分05秒

グループウェア開発に関連し、社内で構築しているWebシステムから、
データをアップロードすることになりました。
動いている社内システムはASP.NETが使われていて、
DataGridに一覧表示されている情報をアップロードすることになりました。

DataGridにアップロード用のリンクを追加し、クリックすることでデータを送信し、
PHPで受け取る形で作りました。

PHP側では、GETでデータを取得しています。
ASP.NETは最近使ってなかったので、思ったよりも時間がかかりました。
しかも、動いているASP.NETはバージョンが古いらしく、
VisualStudioで開くと、警告がたくさん出てきました。
今回はその辺の警告は無視し、リンクの作成に集中することにします。

まず、DataGrid上でリンクを作る方法がよくわからず、調べてみました。
複数のパラメータを渡すようにするには、<ItemTemplate>が必要なようで、
サンプルが書かれているサイトを見ながら作ってみたのですが、エラーになります。
順番にタグを追加していき、追加するたびに実行させたのですが、
NavigateUrlにアドレスを追加すると、HyperLinkでエラーになるという症状が出ていました。

**********************************************
<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' />
</ItemTemplate>
</asp:TemplateColumn>
**********************************************

ここまでは順調だったのですが、

**********************************************

<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "name") %>'
NavigateUrl='<%# "http://localhost/GroupWare/upload.php?id="
+ Server.DataBinder.Eval(Container.DataItem, "ID") %>' />
</ItemTemplate>
</asp:TemplateColumn>

**********************************************

とするとエラーになりました。
本来は、ID以外にもアップする項目があるのですが、
とりあえずでやってみたらエラーでした。

NavigateUrlを指定せずに動かすと、Textの項目はきちんと表示されるので、
データは取得できるようなのですが、IDを設定するとエラーになっています。
いろいろ試した結果、どうも改行するのがダメみたいで、
NavigateUrlを1行で記述するとエラーにならなかったので、
実行してみると、リンクができていました。


早速アップロードしてみたのですが、日本語の情報がアップされませんでした。
ただ、これはエンコードしていないのが原因なので、エンコードの設定を追加しました。

**********************************************
<asp:TemplateColumn HeaderText="アップロード">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
Text='<%# Server.UrlEncode(DataBinder.Eval(Container.DataItem, "name")) %>'
NavigateUrl='<%# "http://localhost/GroupWare/upload.php?id="+Server.DataBinder.Eval(Container.DataItem, "ID") %>' />
</ItemTemplate>
</asp:TemplateColumn>
**********************************************

これで、アップロードしたデータがきちんと日本語で登録されました。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://n-box.asablo.jp/blog/2012/02/07/6324117/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。