2010-11-24 29 views
2

我正在由一个SqlDataSource填充的下拉列表,当我看到创建的HTML之后有很多的价值和文本的空间。这必须因为在数据库中的字段的长度为50。下拉列表值和文本需要修剪

例如

的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> 

控件来源:

 <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的值,或按项目已被填充后?

任何想法?

+0

DEPT_NAME为varchar(50)或CHAR(50)修复它? – gbn 2010-11-24 19:52:15

回答

5

不能修整固定长度的数据。它会永远被填充背出50

投下然后修剪

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 

或者在客户端代码

+0

丢弃AS?或者把它放在dept_name之前? – Narveson 2010-11-24 20:13:18

0

我会建议在您的SQL微调:

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

你不能修剪固定长度数据**和**你需要别名 – gbn 2010-11-24 19:53:43

1

更改的数据类型为VARCHAR或nvarchar以便让数据varible长度。

1

根据您的数据是如何提取,您可以修剪的两端。对于第二个选项(人口)后,您可以使用OnDataBound事件,并通过项目迭代修剪它们。从SQL

0

内饰空间:

SELECT ltrim(rtrim(dept_name)) FROM depts 
+0

你不能修剪固定长度数据**和**你需要一个别名 – gbn 2010-11-24 19:53:10

相关问题