2009-07-23 4 views
0

У меня есть проект ASP.Net с C# и есть элемент Repeater Control на странице aspx, который создает таблицу html путем итерации по источнику данных. Я хочу использовать плагин JQuery Flexigrid, чтобы сделать прокручиваемую таблицу, но не смог понять, как заставить ее работать из-за отсутствия документации на подключаемом модуле. Кто-нибудь знает, как это сделать, или иметь образец кода для обмена?Плагин JQuery Flexigrid в ASP.Net

ответ

0

Я никогда не использовал сам Flexigrid, но, посмотрев образцы на сайте, я предлагаю свои предложения.

Похоже на то, что вам нужно создать с помощью ретранслятора, является правильно отформатированная таблица html с по крайней мере секцией thead и tbody.

<table id="mytable"> 
    <thead> 
     <tr> 
     <th>header1</th> 
     <th>header2</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
     <td>table data 1</td> 
     <td>table data 2</td> 
     <tr> 
    </tbody> 
</table> 

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

$("#mytable").flexigrid(); 

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

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

<table> 
<thead> 
    <tr> 
    <th><asp:label id="header1" runat="server"></asp:label></th> 
    <th><asp:label id="header2" runat="server"></asp:label></th> 
    </tr> 
</thead> 
<tbody> 
<asp:repeater id="myrepeater" runat="server" OnItemDataBound="myrepeater_ItemDataBound"> 
    <ItemTemplate> 
    <tr> 
     <td><asp:label id="data1" runat="server"></asp:label></td> 
     <td><asp:label id="data2" runat="server"></asp:label></td> 
    </tr> 
    </ItemTemplate> 
</asp:repeater> 
</tbody> 
</table> 

И ваше событие связывают данные будут выглядеть примерно так:

public void myrepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    myDataObject = e.Item.DataItem; 
    Label data1 = e.Item.FindControl("data1"); 
    Label data2 = e.Item.FindControl("data2"); 

    data1.Text = myDataObject.data1; 
    data2.Text = myDataObject.data2; 
} 
+0

Это именно то, что я пытался сделать, без успеха. Вызов для создания таблицы flexigrid должен быть завернут в функцию готовности документа, как показано ниже, или она ничего не делает. Но когда я запускаю код, я получаю сообщение об ошибке с недопустимым аргументом. $ (document) .ready (function() { $ ('. Flex1'). Flexigrid(); }); –

+0

Я проверил его примеры с довольно небольшими вариациями в отношении версии jQuery, использования $ (document) .ready, удаления тегов adad и tbody, и ничто, кажется, не вызывает никаких ошибок. Взгляните на исходный код своей страницы и убедитесь, что таблица правильно отформатирована. – phairoh

1

Простой поиск Google «asp.net + Flexigrid» дал мне this и this

Я должен также упомянуть, что поддержка выглядит тонкий на земле для Flexigrid, так что вы, возможно, лучше смотреть на более документально jqGrid

0

Не пытайтесь ссылаться на таблицу id, вы лучше использовать класс для идентификации таблицы. Если вы посмотрите на источник страницы, вы увидите, что идентификатор таблицы не mytable - он искажен ASP.NET в зависимости от структуры вашей страницы.

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