部門名と略語を表示するために使用している RadComboBox があります。各アイテムを次のように表示するために、LinqDataSource を持つアイテム テンプレートを使用しています。
DeptAbbr - (DeptName)
これを行うために使用しているコードは次のとおりで、正常に動作します。
<telerik:RadComboBox ID="rcbDepartments" runat="server" AppendDataBoundItems="True"
OnInit="rcbDepartments_Init" DataTextField="DepartmentAbbr" AutoPostBack="True"
DataSourceID="ldsDepartments" DataValueField="DepartmentID" HighlightTemplatedItems="true"
NoWrap="true" Width="250px">
<ItemTemplate>
<div>
<b>
<%# Eval("DepartmentAbbr")%></b><%# Eval("DepartmentName", " - ({0})") %>
</div>
</ItemTemplate>
</telerik:RadComboBox>
私の質問はこれです。「すべての部門」のデフォルト項目であるリストに最初の項目を追加したいと考えています。私はこれを簡単に行うことができますが、私が抱えている問題は、データベースに「すべての部門」のエントリを保存していないため、コンボボックスをプルダウンすると、項目リストの先頭に空白が表示されることです。 . リストの最初の項目を除くすべての項目をテンプレート化する方法があるかどうかを調べようとしていますか?
注: また、次のように Eval で条件を実行しようとしました。
<b><%# (Eval("DepartmentAbbr") != null) ? Eval("DepartmentAbbr") : "All Departments" %></b><%# Eval("DepartmentName", " - ({0})") %>
ただし、データバインドされているアイテムのみを評価し、手動で貼り付けている最初のアイテムは評価しません。つまり、上記のステートメントを次のように変更すると、
<b><%# (Eval("DepartmentAbbr") == null) ? Eval("DepartmentAbbr") : "All Departments" %></b><%# Eval("DepartmentName", " - ({0})") %>
次に、上部に空白の項目が 1 つあり、残りの項目が「すべての部門」と表示されたリストを取得します。
この問題に対する私の回避策は、LINQ サーバー側でファンキーな選択を行うことでしたが、そのためにすべてのテンプレートと html フォーマットを取り除く必要がありました。