如何添加一个空的第一个条目做一个<asp:DropDownList>?

vit*_*ule 11 asp.net data-binding

我有一个下拉列表,我有一个数据源,我已经AutoPostBack设置true.
我想在数据源中添加第一个条目,例如"--- select country ---",选择此条目不会导致回发.
这感觉应该很容易,但我似乎无法找到一个好的解决方案.
谢谢.

Dan*_*fer 16

在您的aspx页面中(重要的部分是处理DataBound事件并设置CausesValidation ="true"以强制验证下拉列表):

<asp:DropDownList ID="ddlCountries" runat="server" DataSourceID="dsCountries" AutoPostBack="true" OnDataBound="ddlCountries_DataBound" CausesValidation="true" />
<asp:RequiredFieldValidator ID="rfvCountries" runat="server" ControlToValidate="ddlCountries" Display="Dynamic" ErrorMessage="Please select a country." />
Run Code Online (Sandbox Code Playgroud)

在你的代码隐藏中(插入项的值是String.Empty以使所需的字段验证器工作是很重要的!):

protected void ddlCountries_DataBound(Object sender, EventArgs e)
{
ddlCountries.Items.Insert(0, new ListItem("--- select country ---", String.Empty));
}
Run Code Online (Sandbox Code Playgroud)

注意:如果您不希望显示验证程序的消息,请将"显示"属性设置为"无".


The*_*TXI 5

您也可以通过设计器手动添加行,但是您必须确保DropDownList的属性AppendDataBoundItems = True,以便将数据绑定行添加到第一行.