Представление сетки Asp в веб-методе и jquery
Я пытаюсь использовать asp gridview для этого я пытаюсь webmethod и jquery для извлечения данных из базы данных теперь когда я использую html gridview вот так
Что я уже пробовал:
затем gridview отображается на странице, но когда я использую asp gridview, как это
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" onpageindexchanging="GridView1_PageIndexChanging" onselectedindexchanged="GridView1_SelectedIndexChanged" AutoGenerateColumns="False" AllowPaging="True" OnRowCommand="GridView1_select" onrowdatabound="GridView1_RowDataBound"> <AlternatingRowStyle BackColor="White" /> <EditRowStyle BackColor="#7C6F57" /> <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#E3EAEB" /> <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#F8FAFA" /> <SortedAscendingHeaderStyle BackColor="#246B61" /> <SortedDescendingCellStyle BackColor="#D4DFE1" /> <SortedDescendingHeaderStyle BackColor="#15524A" /> <Columns> <asp:BoundField DataField="ID" HeaderText="ID"/> <asp:BoundField DataField="OwnerName" HeaderText="OwnerName"/> <asp:BoundField DataField="RegNo" HeaderText="RegNo"/> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="lbViewChart" Text="View Chart" CssClass="lbViewChart" runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
но сетка не отображается на странице ..
Код Jquery
< script type= "text/javascript">
$(function () { $('[ID*=search_data]').on('click', function () { var fromdate = $('[ID*=fromdate]').val(); var todate = $('[ID*=todate]').val(); var regiondrop = $('[ID*=regiondrop] option:selected')[0].value; var GridView1 = $('[ID*=GridView1]'); var obj = {}; obj.fromdate = fromdate; obj.todate = todate; obj.regiondrop = regiondrop; Getdataa(obj); return false; }); }); function Getdataa(obj) { $.ajax({ type: "POST", url: "WebForm1.aspx/search_data", data: "{'fromdate':'" + obj.fromdate + "','todate':'" + obj.todate + "','regiondrop':'" + obj.regiondrop + "'}", contentType: "application/json; charset=utf-8", dataType: "json", async: true, cache: false, success: function (result) { var final = JSON.parse(result.d).response; console.log(JSON.parse(result.d).response) $("#GridView1").empty(); if (final.length > 0) { $("#GridView1").append( "<tr><th>ID</th><th>OwnerName</th;"); for (var i = 0; i < final.length; i++) { if (final[i] !== null) { $("#GridView1").append("<tr><td>" + final[i][0] + "</td> <td>" + final[i][1] + "</td> <td>" + } } } else { $("#GridView1").hide(); $("#Label4").text("No Data"); } }, error: function (error) { alert("error"); } }); }
так можно ли использовать вид сетки asp? Какое-нибудь решение?
F-ES Sitecore
Gridview - это серверный компонент, который генерирует таблицу в клиентском html-коде. Это не клиентский элемент управления, с которым вы можете взаимодействовать. Если вы хотите обновить данные с помощью jquery, то не используйте gridview, а просто используйте стандартную html-таблицу. Однако вы не получите серверную функциональность, которую предоставляет gridview.
super_user
если я использую html-таблицу, как эта & lt;Таблица>
<tr>
в <ом&ГТ;имя&ЛТ;/й&ГТ;
< / tr>
<tr>
< td> Джилл< / td>
< / tr>
< / Таблица>
тогда я не хочу вставлять данные вручную я извлекаю данные из базы данных так что я пишу вместо имени и Джилл
F-ES Sitecore
Сгенерируйте html-код с помощью asp: Repeater. Google "asp.net постройте html-таблицу с повторителем" , и вы, вероятно, найдете примеры.
super_user
привет.. когда я добавить это .. &ЛТ;АСП:репитер идентификатор="gridata" атрибут runat="сервер"и GT;
& lt;HeaderTemplate>
< table cellspacing=" 0 "rules=" all "border= "1">
<tr>
< th>
< / th>
< / tr>
< / HeaderTemplate>
& lt;itemtemplate>
<tr>
< td>
< / td>
< / tr>
& lt;footertemplate>
< / Таблица>
тогда этот ретранслятор не отображается на странице
F-ES Sitecore
Вам нужно дать ретранслятору источник данных и вызвать databind
http://www.aspsnippets.com/Articles/Display-and-render-Repeater-control-as-HTML-Table-Layout-in-ASPNet.aspx
super_user
я уже связываю в jquery.. если вы проверите jquery, который я опубликовал, и это веб-метод..
[WebMethod]
общественности статической строки search_data(fromdate типа datetime, datetime в последней, строки regiondrop)
{
пробовать
{
строковый результат = "";
TrackDataEntities1 ts = новый TrackDataEntities1();
var dq = (из имени таблицы........ .. .Толист();
DataTable dt = новый DataTable();
ДТ.Столбцы.Add ("ID", typeof(int));
ДТ.Столбцы.Add ("OwnerName", typeof (string));
foreach (var c в dq)
{
ДТ.Строк.Добавления(возр.ИД, Си.ownername);
}
результат = DataSetToJSON(dt);
возвращаемый результат;
}
catch (исключение)
{
выбросить новое исключение();
}
}
публичная статическая строка DataSetToJSON(DataTable dt)
{
Словарь< string, object="" & gt; dict = новый словарь< string, object="">();
object[] arr = новый объект[dt. Rows.Количество + 1];
for (int i = 0; i <= dt.Rows.Count-1; i++)
{
модуль arr[я] = ДТ.Строки[я].ItemArray;
}
dict. Add("ответ", arr);
Класс javascriptserializer формате JSON = новый класс javascriptserializer();
верните json.Сериализация (дикт);
}
super_user
и ваша ссылка не помогла