2013-07-18 3 views
0

У меня есть jpeg, сохраненный в файловой системе с четырьмя ведущими нулями или 5 ведущими нулями, такими как: 0000085.jpeg или 0000112.jpeg.ведущие нули в jpeg-дисплее в gridview

Но jpeg сохраняется только в базе данных с последними цифрами, такими как 85 или 112, , поэтому, когда я показываю jpeg, мне нужно либо выбрать 0000, либо 00000, чтобы некоторые из них не отображались. Я использую:

<asp:Image ID="responseImage" runat="server" Width="35px" ImageUrl='<%# IIf(Eval("AvatarPictureID") = "0", "http://ref-ology.com/Content/images/Thumbs/default-avatar_85.jpg", "http://ref-ology.com/Content/Images/Thumbs/0000" + Eval("AvatarPictureID") + "_150.jpeg")%>' /> 

с этим тегом изображений, только 112.jpeg оно будет показано, так как он имеет 4 нулей.

+3

Звучит так, как будто вы сохраняете 0000085 как число, а не строку перед добавлением расширения. – Maple

ответ

2

Проверьте, что столбец базы данных типа строки типа данных (varchar, nvarchar и т.д.), а число подобных типов данных (int, bigint и т.д.). Вам нужно сохранить имя в виде строки, чтобы сохранить начальные нули.

+0

Я использую NOPCommerce, и с ней легко работать. я пытаюсь работать в рамках их структуры, и именно так они его настраивают. – mlg74

1

Другие ответы верны. Вы должны полностью хранить имена файлов. Однако это решит вашу проблему.

http://ref-ology.com/Content/Images/Thumbs/" + Eval("AvatarPictureID").ToString("0000000") + "_150.jpeg")%> 

Ref: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#Y3200

+0

Я попробовал вашу помощь и получил эту ошибку, System.IndexOutOfRangeException: Индекс находился за пределами массива. – mlg74

+0

Похоже, что настройки вашей культуры вызывают проблемы. Попробуйте ответить the_lotus. Это в основном то же самое решение и его легче читать. – nickles80

+0

, как я снова смотрю, файл фактически сохраняется следующим образом: 0000085_150, 0000120_150, 0000111_150, так что за каждым 7-значным номером следует _150. Я уверен, что это имеет значение и почему ваше решение не работает. но у вас есть идея для этого? – mlg74

1

Что произойдет, когда вы будете в тысячу? Я предлагаю вам использовать функцию пэда

Eval("AvatarPictureID").PadLeft(7, "0") 
+0

Я получаю сообщение об ошибке: «Открытый элемент« PadLeft »по типу« DBNull »не найден». ты знаешь, что это значит? я сделал это ... " mlg74

+0

В нем говорится:« PadLeft on DBNull not found ». Это означает, что AvatarPictureID является нулевым, а не строкой/числом. Убедитесь, что ваш запрос возвращает всю строку или число, а не null, если вы хотите сделать это вот так: –

+0

Некоторые значения равны нулю, поэтому я использую IIF - DBNull! – mlg74

Смежные вопросы