2010-11-24 8 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)であるクライアントコードでそれを修正そしてをキャスト50

に出パッド入りバックされますか? – gbn

答えて

5

あなたは、固定長データをトリミングすることはできません。常にそう

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

+0

@Narveson:私の間違いは申し訳ありません。私は通常、 – gbn

+0

(最初のオプション)を使用して、最初と2番目のオプションを試してみましたが、dept_nameの後に 'AS'を削除した後にのみ動作します。しかし、それは素晴らしい作品です。ありがとう;) – thegunner

0

私はあなたのSQLにトリミングをお勧めします:

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

固定長データをトリミングすることはできません**とエイリアスが必要です** – gbn

1

変更データ型をVARCHARまたはNVARCHARへのデータのvarible長さをできるようにします。

1

データの抽出方法によっては、どちらの側でもトリミングすることができます。 2番目のオプション(母集団の後)では、OnDataBoundイベントを使用して項目を繰り返してトリムします。 SQLから

0

トリムスペース:

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

固定長データをトリミングすることはできません**とエイリアスが必要です** – gbn

関連する問題