簡単な質問があります(できれば簡単に)。まだまだ勉強中ですので、ご容赦ください。
DDL を機能させようとしています。ドロップダウンにはユーザーに 1 つのオプションの列が表示されますが、実際には、ユーザーが選択したオプションは、他の列の特定のオプションの DeviceID を使用します。これが私のデータ ソースの内容です。
<asp:SqlDataSource ID="RetrieveComputerSQL" runat="server"
ConnectionString="<%$ ConnectionStrings:SynInventory %>"
SelectCommand="SELECT DeviceID + ' ' + Computer as Combo,Computer as Computer,DeviceID AS DeviceID from Hardware">
ハードウェア テーブルには 2 つの列があります。
DeviceID = テーブル内の項目の ID Computer = その DeviceID に接続されているマシンのタイプ
たとえば、ハードウェア テーブルは次のようになります。
>Computer (Column) DeviceID (Column)
>------------------ ----------------------
> Thin Client 0
> Desktop 1
> Laptop 2
さて、ここに私のDDLがあります:
<asp:DropDownList ID="ddlComputer" runat="server" AutoPostBack="true"
DataSourceID="RetrieveComputerSQL" DataTextField="Combo" DataValueField="Computer"
SelectedValue='<%# Bind("Computer") %>' AppendDataBoundItems="true">
私がやりたいことは、オブジェクトの「わかりやすい」名前を表示することですが、実際には、ドロップダウン ボックスで選択したオブジェクトの DeviceID を取得し、その値をメインの DataSource に報告します (つまり、UPDATE MainAsset SET です)。 [site] = @Site,[os] = @os,[device] = @Computer WHERE [pk] = @pk") ここで、[device] はハードウェア テーブルです。
考えられるあらゆる方法でこれを試し、RetrieveComputerSQL DS をさまざまな方法で操作しました。「コンボ」オプションで終了することにしましたが、試したことはありません。
建設的なアイデアやコメントをいただければ幸いです。これがすべて理にかなっていることを願っています。
ありがとう!