トップ回答者
AJAX ControlToolkitのAutoCompleteExtenderで抽出したものからテーブルのIDを拾う

質問
-
環境 VS2010 VB SQLserver2008 ASP.NET4
[ASP.NET AJAX]AutoCompleteコントロールでGoogleサジェスト風な
オートコンプリート機能を実装するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/569aspajaxautocmpl/aspajaxautocmpl.html上記により構成
テーブルA(ID、名称)において
MasterPage使用のコンテンツページ、FormView内でTextBoxをテーブルA引用のAJAX ControlToolkitのAutoCompleteExtenderを使用し、"名称"を抽出しております。
ただFormViewにおいてのInsert処理は”ID”で行いたいのですが、「名称」で DB を検索し、該当する「ID」を取得するにはどのような方法で行えばよろしいのでしょうか?
1・オートコンプリートで”名称”を検索表示した段階でポストバックし、別TextBoxなどにDB処理で”ID”を表示してInsertに利用する
2・オートコンプリートで”名称”を検索表示したTextBox自体にDB処理をする?(解らないなりの発想です)
正直知識はありません。何をどう調べればよいのかも検討がつきません。
有識者からの知恵を拝借いたしたく存じ上げます。
- 編集済み kazukazu2002 2012年4月14日 10:13
回答
-
自己解決しました。
別途DropDownListを用意し、visible=false設定し見えないようにし、WHERE句により、TextBoxの値でDropDownListにIDを連携、TextBoxのAutoPostBackを有効にして、DropDownListにIDを表示させ、Insertする事により実現できました。
- 回答としてマーク kazukazu2002 2012年4月14日 15:09
すべての返信
-
自己解決しました。
別途DropDownListを用意し、visible=false設定し見えないようにし、WHERE句により、TextBoxの値でDropDownListにIDを連携、TextBoxのAutoPostBackを有効にして、DropDownListにIDを表示させ、Insertする事により実現できました。
- 回答としてマーク kazukazu2002 2012年4月14日 15:09
-
普通はそのようなことはしません。何でも良いから、できれば OK
ということではないですよね。TextBox にテキト-な文字を入力してリターンキーを押しても問題
はでませんか?後で他人がそのコードを見たら、たぶん訳がわからないと思います
が、保守性に問題があるのではないですか?自分が実装するとしたら、例えば SqlDaraSource を使っているなら、
その Inserting イベントで処置することを考えます。
ところで、kazukazu2002 さんはスレッドを乱立しすぎです。スレッ
ドを立ててすぐ自己解決とかで閉じてしまうなら、最初からよく考
えれば、スレッドを立てる必要はないはず。少しは他のフォーラムの参加者のことを考えていただきたく。
-
>自分が実装するとしたら、例えば SqlDaraSource を使っているなら、
その Inserting イベントで処置することを考えます。それはFormView自体のSqlDaraSourceにおいてのInsertingイベントのことでしょうか?
イベント処理も今までの中でお教えいただいたものがたくさんありますが、正直理解することがやっとです。
VS2010においてポン付けで、しかも本を参照しながらなので、Insertingイベントで何ができるのかということさえ解っていません。
すみません。スレッドの乱立は大変申し訳なく思っております。自分勝手な都合で申し訳ありません。
-
> VS2010においてポン付けで、しかも本を参照しながらなので、
> Insertingイベントで何ができるのかということさえ解ってい
> ません。「ポン付け」とはどういう意味ですか?
何にせよ、SqlDataSource の Inserting イベントというキーワードを
提示しているのですから、それで MSDN ライブラリで検索するなどして
調べてみてください。Web で検索すると時間がかかるので以下のページから Help Viewer を
入手した方がいいかもしれません。H3Viewer - Help Viewer for VS 2010
http://visualstudiogallery.msdn.microsoft.com/4c360395-6afd-4087-94ed-cbcbebe04a20/