我有一个由 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 中删除值,或者在填充下拉列表中的项目吗?
有什么想法吗?
最佳答案
您不能修剪固定长度的数据。它总是会被填充回 50。
所以 CAST 然后修剪
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
或者在客户端代码中修复
关于asp.net - 下拉列表值和文本需要修剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4270801/