2012-03-01 16 views
0

私はサイトを見回しましたが、このように正確に設定された質問はありませんでした。DropdownList:編集中のテンプレートで値の代わりにテキストを表示

従業員情報を表示するDetailsViewがあります。従業員の監督者を選択できるようにDropDownListがあります。スーパーバイザーのID番号が格納されます。ドロップダウンリストには、スーパーバイザの編集時の名前が表示されます。

私の問題は、DetailsViewが編集されていないとき、ItemTemplateがスーパーバイザーのID番号のみを表示することです。スーパーバイザーの名前を示したいと思います。どのようにこれを達成するためのヒント?

<asp:TemplateField ID="Supervisor" HeaderText="Supervisor" SortExpression="SupervisorID"> 
     <EditItemTemplate> 
      <asp:DropDownList ID="SupervisorID" runat="server" DataSourceID="SqlDataSource3" DataTextField="Name" DataValueField="ID" SelectedValue='<%# Bind("SupervisorID") %>'> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" SelectCommand="SELECT [ID], [LastName] + ', ' + [FirstName] AS [Name] FROM [Employees] Order by LastName, FirstName"></asp:SqlDataSource> 
     </EditItemTemplate> 
     <ItemTemplate > 
      <asp:Label Runat="server" Text='<%# Bind("SupervisorID") %>' ID="Label1"></asp:Label> 
     </ItemTemplate> 
     </asp:TemplateField> 
+0

同じ質問をもう一度送信していますか? –

答えて

0

多分それは私ですが、私はこの種のデータアクセスをaspxページから行うことはありません。私の場合は

 foreach (Employee x in empList) 
     { 
      ddlallemployees.Items.Add(new ListItem(x.FullNameE, x.EmployeeID.ToString())); 
     } 

私はEmployeeListもオブジェクトに私の従業員のすべてを入れて、そして従業員のドロップダウンリストにそれらを追加し、それらのオブジェクトを経由するだけだ:ここで私は背後にあるコードから(C#)をそれを行う方法です各エントリの.Textを従業員のフルネームに割り当て、.Valueを従業員のEmployeeIDに割り当てます。

これはドロップダウンリストを読み取り可能な名前で塗りつぶしますが、関連付けられたID(ユーザーには表示されていません)を持っています。

ユーザーが選択すると、ddlallemployees.SelectedItem.Valueと言って、選択したユーザーのIDを取得できます。

従業員オブジェクトとemployeeListオブジェクトの比較可能なシステムがない場合でも、データリーダーを使用してクエリを実行し、while(reader.Read())と言い、各結果を上記のコードを介してドロップダウンリスト。

0

テンプレートの項目で、管理者名の別のラベルにEVAL機能を付けてください。

関連する問題