Asp.net 下拉列表值和文本需要修剪
我有一个dropdownlist,它由一个sqldatasource填充,当我查看之后创建的HTML时,值和文本中有很多空格。这必须是因为数据库中字段的长度为50 e、 g HTML是这样的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;
<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