2010-11-24 3 views
2

sqldatasource에 의해 채워지는 드롭 다운 목록이 있는데, 나중에 만들 HTML을 볼 때 값과 텍스트에 많은 공백이 있습니다. 이는 데이터베이스의 필드 길이가 50이므로드롭 다운 목록 값과 텍스트를 자르려면

입니다.

 <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 

내가 DropDownList로 내 SQL의 값, 또는 항목을 트리밍 할 수가 채워 후 :

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> 

컨트롤 소스처럼?

아이디어가 있으십니까?

+0

DEPT_NAME이 VARCHAR (50) 또는 문자 (50)는 클라이언트 코드에서 문제를 해결 한 후을 CAST (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

첫 번째와 두 번째 옵션을 시도하고 작동하도록했습니다.하지만 dept_name 다음에 'AS'를 제거한 후에 만 ​​사용할 수 있습니다. 하지만 그래, 좋은 작품. 고마워;) – thegunner

0

나는 당신의 SQL에 트리밍 추천 : VARCHAR 또는 NVARCHAR으로

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

고정 길이 데이터를 다듬을 수 없으며 ** 별칭이 필요합니다 ** – gbn

1

변경 데이터 형식의 데이터 varible 길이를 허용 할 수 있습니다.

1

데이터 추출 방법에 따라 양쪽 끝을 다듬을 수 있습니다. 두 번째 옵션 (채우기 후)의 경우 OnDataBound 이벤트를 사용하고 항목을 반복하여 트리밍 할 수 있습니다. SQL에서

0

트림 공간 :

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

고정 길이 데이터를자를 수 없습니다 ** ** 별명이 필요합니다 – gbn