Спецификатор формата строки в C# для фиксированной длины строк в Gridview

Я пытаюсь отобразить строку с фиксированной длиной (скажем, 10 цифр строк) в шаблоне элемента представления сетки во время привязки, я не смог найти никаких спецификаторов формата для самой строки.

я могу получить спецификаторы формата для (Numbers{0:N}, Floats & Decimal (D), Currency{0:C}, , Date{1,8:yyyy} , Percentage {0,3:P1}, Temperature: {0:F}, Exponential, Hexadecimal ... Но не для самой строки)

Я попробовал ссылки: Нажмите здесь но у меня не сработало.

В представлении «Моя сетка» есть поле шаблона (шаблон элемента)

<asp:TemplateField HeaderText="Notes">
     <ItemTemplate>

     <asp:Label ID="Label_Note" runat="server" Text='<%# String.Format("{0}", Eval("Defect_Note").ToString()) %>'  ></asp:Label>   

    </ItemTemplate>
 </asp:TemplateField>

Мне нужно отобразить «Столбец заметок» в таблице ниже с максимальным количеством цифр 10. если exeeds, он не должен отображаться (может отображаться во всплывающей подсказке), если меньше 10, он может отображать все свое содержимое.

введите здесь описание изображения

Я хотел отобразить столбцы Notes, такие как Printf(" %8s" ,&note) в C#. (в привязке одной строки)


person Mark Macneil Bikeio    schedule 12.11.2014    source источник
comment
наверное пробелы обрезаются.   -  person hazimdikenli    schedule 12.11.2014
comment
Если вы хотите отобразить первые 10 символов, чем вам нужно обрезать их или взять первые 10 символов, string.format не будет обрезать их для вас.   -  person hazimdikenli    schedule 12.11.2014
comment
Вы говорите, что вам нужна строка фиксированной длины: если строка состоит из четырех символов, нужно ли ее дополнять до 10 символов? Из контекста, который вы используете, я предполагаю, что нет, но хотел уточнить.   -  person Chris    schedule 12.11.2014
comment
Вы можете добавить свойство Defect_Note_Display в свою модель представления: public string Defect_Note_Display { get { return Defect_Note.Substring(0,10); } } или подобное   -  person paul    schedule 12.11.2014


Ответы (2)


Не забудьте проверить нулевые значения.

notes.Substring(0, Math.Min(notes.Length, 10))
person hazimdikenli    schedule 12.11.2014

приведенный ниже код поможет вам

<asp:Label ID="lblDescription" runat="server"
                Text='<%# Limit(Eval("Description"),10) %>' 
                Tooltip='<%# Eval("Description") %>'>
      </asp:Label>

Обратитесь по этой ссылке:

Как ограничить длину строки метки в GridView со ссылкой Подробнее?

person senthilkumar2185    schedule 12.11.2014
comment
Произошла ошибка при компиляции ресурса, необходимого для обслуживания этого запроса. Ознакомьтесь со следующими конкретными сведениями об ошибке и соответствующим образом измените исходный код. Сообщение об ошибке компилятора: CS0103: имя «Предел» не существует в текущем контексте - person Mark Macneil Bikeio; 12.11.2014
comment
@Rahul: я предполагаю, что Limit - это пользовательский метод, который Сентхилкумар забыл включить в свой ответ. Я подозреваю, что его содержание будет похоже на ответ Хазимдикенли. - person Chris; 12.11.2014