Umair Nafis Ответов: 2

Как связать несколько записей в теге div с помощью ASP.NET с#


я также попробовал OrderByDescending ().Метод ToList () для извлечения всех записей, но проблема в том, что когда я извлекаю все записи, я не могу связать все записи в теге div так, чтобы тег div увеличивался в соответствии с записями.

Кроме того, я хочу знать, как скрыть некоторый текст описания блога с помощью ссылки read more

Пожалуйста, помогите мне!

Спасибо!

Что я уже пробовал:

public string author="";
публичная строка blogTitile = "";
публичная строка blogDescription = "";

using(database db = new database())
          {
              var query = (from c in db.table

                           select new
                           {
                               c.id,
                               c.Author,
                               c.BlogTitle,
                               c.BlogDescription
                           }).OrderByDescending(d => d.id).FirstOrDefault();



              author = query.Author;
              blogTitle = query.BlogTitle;
              blogDescription = query.BlogDescription;


                  divImage ="<div class='col-md-6 nopadding hidden-xs'><img src='../images/blog/1.jpg' alt='News Image'><span class='img-overflow'></span><div class='arrow-left'></div></div>";
                  divDetails ="<p class='date'>"+ author+ "</p>"+
                              "<h2>"+ blogTitle+"</h2>"+
                                "<p> "+blogDescription+"</p>"+
                                 "<a href='artikel' class='btn btn-primary btn-xs'>Read More</a>"+
                                "<span class='comments'>0 </span>";


это страница aspx:
 <div class="row ">
     <div class="col-xs-12">
          <div class="item item-left">
                    <%= divImage %>

         <div class="col-xs-6 ">
              <div class="content">
                        <%=divDetails %>
              </div>
        </div>
    </div>
  </div>
</div>
</div>

2 Ответов

Рейтинг:
5

sachin.vishwa90

для этого есть плагин jquery. http://www.jqueryscript.net/text/jQuery-Plugin-For-Truncating-Text-with-Read-More-Links-jReadMore.html
вы должны изменить свой html-текст, как указано в блоге.
ключевая часть-это активация вашего кода плагина. для этого вам придется написать javascript на Вашей странице aspx.

<script type='text/javascript'>
function activateReadmore(){
$('.read-more').readMore();
}
<script>

вы должны вызвать эту функцию после того, как свяжете свой html-код в коде c#
blogData.InnerHtml = sb.ToString();
// after this you will activate your function
Page.ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","activateReadmore()",true);

надеюсь, это поможет


Umair Nafis

сэр, я использовал freetextbox для вставки описания блога в базу данных, теперь, когда я связываю эти данные на веб-странице, он отображает весь текст. я хочу показать только ограниченный текст из описания блога, я использовал x. blogDescription.ToString (). SubString(200), из-за этого метода он также показывает HTML-тег на веб-странице, так есть ли какое-либо альтернативное решение привязки ограниченного текста freetextbox/RichtextBox ? Спасибо

Рейтинг:
15

sachin.vishwa90

для получения дополнительной логики вы можете поискать ее в google. однако я публикую ответ на этот вопрос, где вы хотите перебирать записи и формировать HTML.
В основном в коде c# на методе page_Load вы будете запускать запрос linq, который вы написали.
после взятия записи вы сформируете HTML-код и свяжете этот HTML-код с заполнителем, который находится на aspx.
таким образом, ваш код aspx будет

<div id="blogData" runat="server"></div>

и в вашей загрузке страницы вы напишете ниже код
var query = (from c in db.table
                            
                            select new
                            {
                                c.id,
                                c.Author,
                                c.BlogTitle,
                                c.BlogDescription
                            }).OrderByDescending(d => d.id)
// got the records. loop through it
System.Text.StringBuilder sb = new System.Text.StringBuilder();
                query.ForEach(x => { sb.Append(string.Format("<div class='row '><div class='col-xs-12'><div class='item item-left'><div class='col-md-6 nopadding hidden-xs'><img src='../images/blog/1.jpg' alt='News Image'><span class='img-overflow'></span><div class='arrow-left'></div></div><div class='col-xs-6 '><div class='content'><p class='date'>{0}</p>'+'<h2>{1}</h2>'+'<p>{2}</p>'+'<a href='artikel' class='btn btn-primary btn-xs'>Read More</a>'+'<span class='comments'>0 '></span></div></div></div></div></div>", x.Author, x.BlogTitle,x.BlogDescription)); });

//sb will have your formed HTML.
// now you will put this html to placeholder div
blogData.InnerHtml = sb.ToString();


Примечание: это не проверенный код, который вам может понадобиться изменить. Желаю удачи


Umair Nafis

Спасибо за ответ сэр,
Я попробовал ваш код, но я получаю ошибку в ForEach ()..вам не хватает директивы using или ссылки на сборку.

Umair Nafis

Большое вам спасибо, сэр, это работает, я только что использовал
запрос.Вызова метода toList().По каждому элементу(...),,...
Большое спасибо, сэр.

sachin.vishwa90

лол, я собирался ответить то же самое, но ты знаешь, почему ты должен использовать .Список есть?

Umair Nafis

На самом деле я действительно dnt знаю, почему я использовал ToList() здесь, как я dnt, что должно быть лучшим вариантом для извлечения всех данных из базы данных. пожалуйста, поправьте меня, если у меня есть лучший вариант, чем ToList (). Я просто хочу связать все данные..

Кроме того, сэр, я хочу знать, есть ли у вас возможность отображать только ограниченный текст в описании блога со ссылкой read more..надеюсь, вы поймете.

sachin.vishwa90

вы использовали инструкцию linq для выбора записей из базы данных. Итак, как работает этот linq, что бы вы ни писали здесь в коде c#, он внутренне создает SQL-оператор и когда вы пишете .ToList () тогда он фактически запускает SQL-оператор. в более раннем случае этот оператор был создан, но не выполнен. как только ты написал .ToList () выполнил запрос и принес вам данные.
для readmore я скоро опубликую пост.

Umair Nafis

Большое вам спасибо, сэр, вы просто великолепны.
Сэр, но этот метод не работает для привязки изображений, как вы можете видеть здесь, я непосредственно отображаю одно изображение во всех блогах, но если я использую ASP image control в этом для динамической привязки изображений, imageId не обнаруживается компилятором.

Umair Nafis

Как привязать изображение этого конкретного блога в этом теге : "" т. е. путь к изображению сохраняется в sqlserver и изображение в папке проекта, можно ли привязать эти изображения в этом теге? пожалуйста, скажите мне, что я буду очень благодарен вам, сэр.

sachin.vishwa90

привет, это тоже можно легко сделать. все, что вам нужно сделать, это выбрать путь к этим изображениям, а также в вашем заявлении select, как показано ниже.
выберите новый
{
гр.идентификатор,
гр.Автор,
гр.BlogTitle,
гр.BlogDescription,
гр.Продуктам
}).OrderByDescending(d => d.id)
а затем свяжите этот путь с тегом src в строке.
СБ.Добавить(строка.Формат("....&ЛТ;ИМГ СРЦ='{3}' .....",х.Автор, х.BlogTitle,х.BlogDescription,х.Продуктам));
надеюсь, это поможет. может быть, вам придется проверить путь изображения, является ли он относительным или абсолютным путем.

Umair Nafis

Здравствуйте, сэр, это нормально, я попробовал, и это работает, но я хочу добавить несколько изображений, из приведенного выше кода я могу привязать только изображение signle, предположим, если блог содержит более одного изображения, то как я могу его привязать?
Большое спасибо

sachin.vishwa90

ну, в этом случае вам придется сначала сформировать HTML-файл ImageList и ввести сформированный HTML-код в string.format. надеюсь, вы это понимаете

Umair Nafis

К сожалению, у меня не получилось у. Будет очень полезно, если вы предоставите какой-нибудь код или ссылку.