LinqDataSource でバインドされた DropDownList に空のオプションを追加するエレガントな方法はありますか?
cruster
質問する
5645 次
4 に答える
8
リストの先頭に値を追加する方法は次のとおりです。空の文字列またはテキストを指定できます。
<asp:DropDownList ID="categories" runat="server" AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="categoriesDataSource" DataTextField="CategoryName" DataValueField="CategoryID" EnableViewState="False">
<asp:ListItem Value="-1">
-- Choose a Category --
</asp:ListItem>
</asp:DropDownList>
DropDownList の AppendDataBoundItems=True を設定してください。
于 2008-11-10T16:19:21.167 に答える
1
マークアップ:
<asp:DropDownList ID="ddlQualQuestion" runat="server" DataSourceID="sdsQualQuestion" DataTextField="ShortQuestionText" DataValueField="QualificationQuestionKey" AutoPostBack="true" OnSelectedIndexChanged="ddlQualQuestion_SelectedIndexChanged" OnDataBound="ddlQualQuestion_DataBound" />;
コードビハインド:
protected void ddlQualQuestion_DataBound(object sender, EventArgs e)
{
ddlQualQuestion.Items.Insert(0, new ListItem("", "0"));
}
于 2010-08-13T14:41:20.393 に答える
1
DOK が提供するソリューションを使用します。
<asp:DropDownList ID="categories" runat="server" AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="categoriesDataSource" DataTextField="CategoryName" DataValueField="CategoryID" EnableViewState="False">
<asp:ListItem Value="-1">
-- Choose a Category --
</asp:ListItem>
</asp:DropDownList>
さらに、ユーザーに選択を強制したくない場合は、GridView の LinqDataSource にメソッドを追加できます。
OnSelecting="myGridview_Selecting"
次のようなコード ビハインドを追加します。
protected void myGridview_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
if (categories.SelectedValue == "-1")
{
e.WhereParameters.Remove("CategoryID");
}
}
于 2013-01-22T10:14:11.123 に答える
0
IEnumerable<string>
リストの先頭に項目を追加する拡張メソッドを提供します。
public static IEnumerable<string> Prepend(this IEnumerable<string> data, string item)
{
return new string[] { item == null ? string.Empty : item }.Union(data);
}
linq 拡張メソッド Union を使用するため、一種の linq-y です。これを行うよりも少しきれいです:
var result = new string[]{string.Empty}.Union(from x in data select x.ToString());
于 2008-11-10T16:22:50.160 に答える