Удаление как таблицы, так и охватывает теги от ASP: DataList

StackOverflow https://stackoverflow.com/questions/4354536

Вопрос

Datalistis, сделанные с <table> или <span> Теги, которые я не хочу.

Я установил RepeatLayout="Flow" Но это все еще дает мне пролеты. Я установил RepeaterDirection="Horizontal" Но это все еще дает мне столы.

Как я могу получить простой Datalist без всех пролетов таблиц?

<asp:DataList ID="MyDataList" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
   <ItemTemplate>
     ....
   </ItemTemplate>
</asp:Datalist>

Заранее спасибо!

Это было полезно?

Решение

Вам нужно, чтобы это было DataList контролировать вообще? Вы можете иметь полный контроль над визуализированным HTML с помощью Repeater Или даже просто зацикливаться через ваши объекты и вручную рендурируйте свой выход.

Другие советы

Иногда вы не можете использовать Repeater, поскольку DataList предоставляет дополнительные возможности (например, обновление базы данных через команды обновления и удаления, работая непосредственно с помощью ASP: DataSource).

Поэтому, если вам все еще нужно использовать DataList, но хотите избежать его HTML, вы можете сделать немного jQuery поверх него, как я это сделал.

Код ASPX:

<ul class="list">
    <asp:DataList ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" DataKeyField="photo_id" RepeatLayout="Flow" RepeatDirection="Horizontal">
        <ItemTemplate>
            <li class="item" id='<%# Eval("photo_id") %>'>
                Whatever else you need here.
            </li>
            </ItemTemplate>
        </asp:DataList>
    </ul>

Это будет производить HTML, как это:

<span id="SomeId" style="">
   <span>
      <li class="item ui-droppable" id="31349">
        Whatever else you need here.
     </li>
   </span>
</span>

Очевидно, что есть 2 охвата тегов, которые вам не нужно. Чтобы удалить их, вы можете добавить сценарий jQuery на странице.

<script type="text/javascript">
$(document).ready(function () {
    $('.item').unwrap(); $('.item').unwrap();
});
</script>

В моем случае я хотел произвести неупорядоченный список, который я контролирую. Но каквий, вы можете сделать это любым другим способом, изменив HTML в Datalist и нацеливаю на нужный элемент в jQuery (.item).

Надеюсь, это поможет кому-то еще, что нуждается в функциональности хранения данных и не может сделать это с помощью повторителя.

Я думаю, что у вас может быть легче использовать повторитель Что позволит вам установить собственную разметку.

Принципиально создайте ASP Repeater, свяжите ваши данные к нему так же одинаково, как DataList, и построить разметку в теге «ItemTemplate». (ПРЕДУПРЕЖДЕНИЕ Это из памяти - я на своем ровивном ноутбуке, поэтому не имею Visual Studio для проверки синтаксиса.)

<asp:Repeater runat="server" id="MyRepeater">
    <HeaderTemplate><h1>My Data Title</h1></HeaderTemplate>
    <ItemTemplate>
        <p>Any Markup you want. This bit gets repeated</p>
        <%#Container.DataItem("DataKeyOrColumnName")%>
    </ItemTemplate>
    <FooterTemplate><p>The footter (and header) only appear once.</p><p>you could use them to start and end a list or table</p></FooterTemplate>
</asp:Repeater>

Вы получите только разметку, которую вы поместите в шаблоны, больше ничего. Вы можете пропустить заголовок и нижний колонтитул, если вам это не нужно. И если вы не хотите разметки вообще, просто нет тегов в вашем шаблоне, данные выйдут как простой текст.

Я получал эту ошибку, потому что я использовал <Table> в заголовке и </table> В шаблонах нижнего колонтитула я получаю удаление этого, и я использовал целый стол на каждом шаблоне, и она перестает получать эти нежелательные бирки.

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

Если вам нужен элемент управления DATLIST, вам нужно будет установить свойство RepeatLayout = «поток»

Anwser был найден здесь: http://forums.ass.asp.net/t/1388759.aspx?datalist+withoutoutefale+

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top