значения выпадающего списка и текст должны быть обрезаны - PullRequest
2 голосов
/ 24 ноября 2010

У меня есть раскрывающийся список, который заполняется источником 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 или элементы в раскрывающемся списке после его заполнения?

Есть идеи?

Ответы [ 5 ]

5 голосов
/ 24 ноября 2010

Вы не можете обрезать данные фиксированной длины. Это всегда будет дополнено до 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

Или исправьте это в коде клиента

1 голос
/ 24 ноября 2010

Измените тип данных на VarChar или nVarChar, чтобы разрешить переменную длину данных.

1 голос
/ 24 ноября 2010

В зависимости от того, как извлекаются ваши данные, вы можете обрезать их с любого конца. Для второго варианта (после заполнения) вы можете использовать событие OnDataBound и перебирать элементы, чтобы обрезать их.

0 голосов
/ 24 ноября 2010

отделки пространства от sql:

SELECT ltrim(rtrim(dept_name)) FROM depts
0 голосов
/ 24 ноября 2010

Я бы порекомендовал обрезку в вашем SQL:

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:scConnString %>"
        SelectCommand="SELECT LTRIM(RTRIM(dept_name)) FROM depts"></asp:SqlDataSource
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...