- PR -

WebボタンからHTMLボタンへの変更

投稿者投稿内容
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-17 09:23
いつも活用させていただいております。
ASP.NETでWeb開発を行っております。

DataGrid内にWebボタンを配置して、クリックイベントでIDを別ページへ送信する処理を行っておりました。
これをHTMLボタンにするにはどのようにコーディングしたらよろしいのでしょうか。
現在のソース
private void DataGrid1_ItemBound(省略)
{
   Control ctrl = e.Item.Controls[0];
   Button btn = (Button)ctrl.FindControl("Send_cmd");
   btn.Attributes["onClick"] = "JavaScript:send('" + ID + "');";
}

ボタンをHTMLボタンに変更し実行すると
Button btn = (Button)ctrl.FindControl("Send_cmd");
で「指定されたキャストは有効ではありません。」というエラーが出ます。
当然HTML用にコーディングしていないせいなのですが、どうしたらよいかわからず質問いたしました。

宜しくお願い致します。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-17 09:28
NAL-6295です。

引用:

BB.NKさんの書き込み (2004-02-17 09:23) より:
コード:
   Button btn = (Button)ctrl.FindControl("Send_cmd");





この部分が問題です。

WebフォームのボタンはSystem.Web.UI.WebControls.Buttonクラスで、
HTMLのボタンはSystem.Web.UI.HtmlControls.HtmlInputButtonクラスなので、
適切なキャストをしてあげる必要があります。

ズバリなコードを書かなくても答えはもう、明白ですね?
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-17 09:36
ありがとうございました。

キャストなどといった用語がさっぱりわかりませんでした。
エラーの意味などもっと勉強する必要がありそうです。
なにか良い材料はございますでしょうか。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-02-17 09:42
C#の入門書を一冊くらい買っておいても損はないと思います。

@ITにも記事がありますね。
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
おかもと
大ベテラン
会議室デビュー日: 2003/06/08
投稿数: 182
投稿日時: 2004-02-17 09:46
引用:

キャストなどといった用語がさっぱりわかりませんでした。
エラーの意味などもっと勉強する必要がありそうです。
なにか良い材料はございますでしょうか。



BB.NKさんを個人攻撃しているわけではないのでお気を悪くしないでください。

キャストの意味もわからないような方がプログラミングを行うことって
VB系の方に多そう(すみません。個人的観測です)ですが、
こう言った言語以前のプログラミングの基礎を習得できるような
良書って無いんでしょうかねえ?

普通は自然に覚えるものだけど、最近は経験の浅い人がいきなり実戦に投入
されることもWEB系では珍しくないので、「10日で覚えるVB.NET(仮称)」
とかではなく、「10日で覚えるプログラミングの基礎(仮称)」みたいなのが
必要という気がします。
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-17 09:56
おっしゃる通り、以前は(今もたまに)VB開発に携わっておりました。
その他はC言語(DOS窓)を少々といった具合なのです。
(VB暦半年、Web暦2ヶ月)
C#の本は当然数冊買ったのですが、選択を誤ったようです。
(どうしても初歩の初歩を買ってしまいます)

基礎もないのに実践ですから。。。
とはいえ自己責任@社会人で頑張ります。

ありがとうございました。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2004-02-17 10:01
引用:

おかもとさんの書き込み (2004-02-17 09:46) より:
キャストの意味もわからないような方がプログラミングを行うことって
VB系の方に多そう(すみません。個人的観測です)ですが、


 確かに、多いですね。
VBの技術者の方にキャストっていうと???ってな顔をよくされます。
下手すると10年選手でも知らないことがありますね。
まあ、私も汎用機時代にはキャストなんて言葉は聞いたことが無いですし、
VBでもそういった言い方をしないだけではないのでしょうか?。

引用:

普通は自然に覚えるものだけど、最近は経験の浅い人がいきなり実戦に投入
されることもWEB系では珍しくないので、「10日で覚えるVB.NET(仮称)」
とかではなく、「10日で覚えるプログラミングの基礎(仮称)」みたいなのが
必要という気がします。


 個人的には10日で覚えるなんて無理かと思います。
本当に10日でなんとかなるなら、
ベテランの技術者は失業しているはずです。
まあ、こういうの多いけど・・・。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-17 10:11
NAL-6295です。

キャストって言葉を知らなくても型変換って言葉は知っているって事はあるかもしれませんね。
その場合、基礎が出来ていないというのとはまた違うと思います。

VBの技術者で型変換を知らないって人がいるとしたら、実はVBの技術者ですらなく、暗黙の型変換だらけのガラクタコード製作者でしか無いかもしれません。

通常、キャスト又は型変換に関する部分についてはコーディング規約に乗せるはずなので、それがわからない場合、多分社内の人に聞くべきでしょうね。

ちなみに、言語に関わらない基礎を勉強するという意味では、基本情報処理技術者の勉強をされるといいかもしれません。(旧2種と同じ範囲と想像して発言しています。)

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