Asp.net 下拉列表值和文本需要修剪

Asp.net 下拉列表值和文本需要修剪,asp.net,tsql,drop-down-menu,Asp.net,Tsql,Drop Down Menu,我有一个dropdownlist,它由一个sqldatasource填充,当我查看之后创建的HTML时,值和文本中有很多空格。这必须是因为数据库中字段的长度为50 e、 g HTML是这样的 <select name="DropDownList1" onchange="javascript:setTimeout('__doPostBack(\'DropDownList1\',\'\')', 0)" id="DropDownList1" style="height:23px;

我有一个dropdownlist,它由一个sqldatasource填充,当我查看之后创建的HTML时,值和文本中有很多空格。这必须是因为数据库中字段的长度为50

e、 g

HTML是这样的

        <select name="DropDownList1" onchange="javascript:setTimeout('__doPostBack(\'DropDownList1\',\'\')', 0)" id="DropDownList1" style="height:23px;width:148px;">
    <option value="IT  Dev                                           ">IT  Dev                                           </option>
    <option value="Marketing                                         ">Marketing                                         </option>
    <option value="HR                                                ">HR                                                </option>
    <option selected="selected" value="Finance                                           ">Finance                                           </option>
    <option value="Corporate                                         ">Corporate                                         </option>
    <option value="IT Support                                        ">IT Support                                        </option>

</select>

IT开发
营销
人力资源
财务
公司的
IT支持
控制源为:

        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource2"
            DataValueField="dept_name" Height="23px" Width="148px">
            <asp:ListItem Text="All" Value="%"></asp:ListItem>
        </asp:DropDownList>

        <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:scConnString %>"
            SelectCommand="SELECT dept_name FROM depts"></asp:SqlDataSource


我建议您调整SQL:

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:scConnString %>"
        SelectCommand="SELECT LTRIM(RTRIM(dept_name)) FROM depts"></asp:SqlDataSource

将数据类型更改为VarChar或nVarChar,以允许不同长度的数据。

根据数据的提取方式,您可以在任意一端进行修剪。对于第二个选项(填充后),您可以使用OnDataBound事件并遍历项来修剪它们。

修剪sql中的空格:

SELECT ltrim(rtrim(dept_name)) FROM depts

无法修剪固定长度数据。它总是会被填充回50

因此,铸造然后修剪


或者在客户端代码中修复它

dept_name是varchar(50)还是char(50)?您不能修剪定长数据,您需要别名您不能修剪定长数据,您需要别名删除AS?还是把它放在部门名称之前?@Narveson:我的错,对不起。我会使用AS(我的第一个选项)通常会尝试第一个和第二个选项,并使它们工作..但只有在删除部门名称后的“AS”之后?但是是的,它很好用。谢谢;)
SELECT RTRIM(CAST(dept_name AS varchar(50))) AS dept_name FROM depts

--other options, after comment
SELECT RTRIM(CAST(dept_name AS varchar(50))) dept_name FROM depts
SELECT dept_name = RTRIM(CAST(dept_name AS varchar(50))) FROM depts