在我的网页我有一个DropDownList我与数据库中的值来填充从SqlDataSource(见下面的代码)。

如何能值之前添加自己的文字或空行?

<asp:DropDownList ID="drpClient" runat="server" Width="200px" 
    AutoPostBack="True" DataSourceID="dsClients" DataTextField="name" 
        DataValueField="client_id">
</asp:DropDownList>
<asp:SqlDataSource ID="dsClients" runat="server" 
    ConnectionString="my_connection_string" 
    ProviderName="System.Data.SqlClient" 
    SelectCommand="SELECT [client_id], [name] FROM [clients]">
</asp:SqlDataSource>

感谢。

P.S。你建议使用SqlDataSource还是更填充另一种方式?

其他提示

<asp:DropDownList ID="drpClient" runat="server" Width="200px" 
        AutoPostBack="True" DataSourceID="dsClients" DataTextField="name" 
        DataValueField="client_id" AppendDataBoundItems="True">

    <asp:ListItem Text="" Value="" />
 </asp:DropDownList>

这很容易错过,所以不要忘了AppendDataBoundItems属性我补充道。

我还没有真正测试这一点,但我假设你已经绑定的下拉列表后,可以添加一个项目。您可以将该事件添加到任何下拉列表你想把这个空框添加到。

protected void DropDownList_DataBound(object sender, EventArgs e)
    {
        DropDownList ddl = (DropDownList)sender;
        ListItem emptyItem = new ListItem("", "");
        ddl.Items.Insert(0, emptyItem);
    }

我解决改变选择命令添加一个空的选项:

        <asp:SqlDataSource ID="dsClients" runat="server" 
            ConnectionString="my_connection_string" 
            ProviderName="System.Data.SqlClient" 
            SelectCommand="SELECT [client_id], [name] FROM [clients] union SELECT NULL, '--- pick one ----' ">
        </asp:SqlDataSource>

问候!!!

在我的剃须刀式的实现中,它看起来是这样的:

@Html.EnumDropDownListFor(
    model => model.Privilege.Role,
    "-- Select role --",
    new
    {
        @style = "width: 216px !important",
        @class = "form-control",
        id = "role",
        required = "required"
     })
其上负载执行

和在JavaScript我有这样的:

function PutDefaultPrivilegePanelListHints() {
    $('#role').val('');
    ...
}

还有通过不引人注目的验证(不上HTML5计数)更灵活的解决方案:

$('.required').each(function () { $(this).rules('add', { required: true, messages: { required: '' } }) });

当然,还有一个服务器侧单向,太。 我不认为这是应对类是一个好主意。 举例来说,我的一切显示的页面是一些类。这个类有几个枚举类型的属性。这将是复制所有这些属性的噩梦,但使他们在一些其他类可为空一些的人在这里提出的计算器。

毕竟,我为什么要改变我的商业逻辑某些特定标记的缘故?相反,我处理通过JavaScript一切,某些型号的检查。

scroll top