Chriz12 Ответов: 1

Ошибка при загрузке данных в gridview с помощью jquery


Привет,

Я пытаюсь загрузить данные в datagrid с помощью jquery.
Моя проблема заключается в том, что я получаю значение rownum(0) в строке заголовка и на месте rownum(0) Я получаю имя(0). Кроме того, я получаю только значения столбцов rownum и NAME (столбцы 0 и 1).

Это мой код:

CREATE TABLE tblTEST  
(ID INT not null IDENTITY(1,1),  
IDNO NVARCHAR(20),  
NAME NVARCHAR(20),  
POSTADDRESS NVARCHAR(20),  
TEL NVARCHAR(20),  
INSDATE DATE,  
APPROVAL BIT  
)  
CREATE PROCEDURE PROC_TEST  
(@IDNO NVARCHAR(20),  
@NAME NVARCHAR(20),  
@TEL NVARCHAR(20))  
AS  
BEGIN  
SELECT ROW_NUMBER() OVER(order by ID) AS rownum,IDNO,NAME,POSTADDRESS,TEL,INSDATE,APPROVAL  
FROM tblTEST  
WHERE IDNO=@IDNO and NAME=@NAME and TEL=@TEL  
END  


код C# :

[WebMethod]  
public static String getApplicants(String idno, String name, String tel)  
{  
SqlCommand cmd = new SqlCommand();  
cmd.CommandType = CommandType.StoredProcedure;  
cmd.CommandText = "PROC_TEST";  
cmd.Parameters.Add("@IDNO", SqlDbType.VarChar).Value = idno;  
cmd.Parameters.Add("@NAME", SqlDbType.VarChar).Value = name;  
cmd.Parameters.Add("@TEL", SqlDbType.VarChar).Value = tel;  
return GetData(cmd).GetXml();  
}  
private static DataSet GetData(SqlCommand cmd)  
{  
using (SqlConnection con = getConnection())  
{  
using (SqlDataAdapter sda = new SqlDataAdapter())  
{  
cmd.Connection = con;  
sda.SelectCommand = cmd;  
using (DataSet ds = new DataSet())  
{  
sda.Fill(ds);  
return ds;  
}  
}  
}  
}


и javascript:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>

<script type = "text/javascript">  
function bindGrid() {  
var pageurl = '<%=ResolveUrl("Default.aspx/getApplicants") %>';  
var idno = $("#<%=txtIDNO.ClientID%>").val();  
var name = $("#<%=txtName.ClientID%>").val();  
var tel = $("#<%=txtTel.ClientID%>").val();  
var parameter={"idno":idno,"name":name,"tel":tel}  
$.ajax({  
type: "POST",  
url: pageurl,  
data: JSON.stringify(parameter),  
contentType: "application/json; charset=utf-8",  
dataType: "json",  
success: OnSuccess,  
failure: function(response) {  
alert(response.d);  
}  
});  
}  
function OnSuccess(response) {  
var xmlDoc = $.parseXML(response.d);  
var xml = $(xmlDoc);  
var dv = xml.find("Table");  
var row = $("[id*=gv] tr:last-child").clone(true);  
$("[id*=gv] tr").not($("[id*=gv] tr:first-child")).remove();  
$.each(dv, function () {  
var dv = $(this);  
$("td", row).eq(0).html($(this).find("rownum").text());  
$("td", row).eq(1).html($(this).find("IDNO").text());  
$("td", row).eq(2).html($(this).find("NAME").text());  
$("td", row).eq(3).html($(this).find("POSTADDRESS").text());  
$("td", row).eq(4).html($(this).find("TEL").text());  
$("td", row).eq(5).html($(this).find("INSDATE").text());  
$("td", row).eq(6).html($(this).find("APPROVAL").text());  
$("[id*=gv]").append(row);  
row = $("[id*=gv] tr:last-child").clone(true);  
});  
}  
</script>  


язык разметки gridView:

< div style= " overflow-x: auto; width: 90%">
&ЛТ;в ASP:GridView в идентификатор="гв" атрибут runat="сервер" AutoGenerateColumns="false" - в ShowFooter="истинный"
OnRowEditing= " gvFunctions_RowEditing"
OnRowUpdating= " gvFunctions_RowUpdating"
Метода onrowcancelingedit="gvFunctions_RowCancelingEdit"
OnPageIndexChanging= " gvFunctions_PageIndexChanging"
OnRowDeleting=" gvFunctions_RowDeleting " OnRowCommand=" gvFunctions_RowCommand "AllowPaging=" True "PageSize=" 5"
CssClass= "mGrid" PagerStyle-CssClass=" pgr "AlternatingRowStyle-CssClass= "alt">
& lt;колонки>
<asp:TemplateField HeaderText= "rownum">
& lt;ItemTemplate>
&ЛТ;АСП:метка идентификатор="lblrownum" атрибут runat="сервер" текст=в'<%#Ивала("параметр rownum") %&ГТ;' ширина="30"&ГТ;&ЛТ;/АСП:ярлык&ГТ;
< / ItemTemplate>
< / asp:TemplateField>
<asp:TemplateField HeaderText= "IDNO">
& lt;ItemTemplate>
&ЛТ;АСП:метка идентификатор="lblIDNO" атрибут runat="сервер" текст=в'<%#Ивала("ИДНО") %&ГТ;' ширина="120"&ГТ;&ЛТ;/АСП:ярлык&ГТ;
< / ItemTemplate>
& lt;FooterTemplate>
&ЛТ;АСП:текстовое поле с ID="txtAddIDNO" атрибут runat="сервер" ширина="120"&ГТ; &ЛТ;/АСП:текстовое поле&ГТ;
&ЛТ;как ASP:RequiredFieldValidator идентификатор="reqIDNO" атрибут runat="сервер" Цвет="Красный" ValidationGroup="ValgrpIns" ControlToValidate="txtAddIDNO" сообщение об ошибке="*"&ГТ;&ЛТ;/в ASP:RequiredFieldValidator&ГТ;
< / FooterTemplate>
< / asp:TemplateField>
<asp:TemplateField HeaderText= "Name">
& lt;ItemTemplate>
&ЛТ;АСП:метка идентификатор="lblName" атрибут runat="сервер" текст=в'<%#Ивала("название") %&ГТ;' Ширина="180"&ГТ;&ЛТ;/АСП:ярлык&ГТ;
< / ItemTemplate>
< EditItemTemplate>
&ЛТ;АСП:текстовое поле с ID="txtName" атрибут runat="сервер" текст=в'<%# Персонализация("название ") %&ГТ;' Ширина="180"&ГТ;&ЛТ;/АСП:текстовое поле&ГТ;
< / EditItemTemplate>
& lt;FooterTemplate>
&ЛТ;АСП:текстовое поле с ID="txtAddName" атрибут runat="сервер" Ширина="180"&ГТ;&ЛТ;/АСП:текстовое поле&ГТ;
&ЛТ;как ASP:RequiredFieldValidator идентификатор="reqName" атрибут runat="сервер" Цвет="Красный" ValidationGroup="ValgrpIns" ControlToValidate="txtAddName" сообщение об ошибке="*"&ГТ;&ЛТ;/в ASP:RequiredFieldValidator&ГТ;
< / FooterTemplate>
& lt;Headerstyle Width= " 15%"></HeaderStyle>
< / asp:TemplateField>
<asp:TemplateField HeaderText= "POSTADDRESS">
& lt;ItemTemplate>
&ЛТ;АСП:метка идентификатор="lblPostalAddress" атрибут runat="сервер" текст=в'<%#Ивала("POSTADDRESS") %&ГТ;' Ширина="180"&ГТ;&ЛТ;/АСП:ярлык&ГТ;
< / ItemTemplate>
< EditItemTemplate>
&ЛТ;АСП:текстовое поле с ID="txtPostalAddress" атрибут runat="сервер" текст=в'<%# Персонализация("POSTALADDRESS") %&ГТ;' Ширина="180"&ГТ;&ЛТ;/АСП:текстовое поле&ГТ;
< / EditItemTemplate>
& lt;FooterTemplate>
&ЛТ;АСП:текстовое поле с ID="txtAddPostalStreet" атрибут runat="сервер" Ширина="180"&ГТ;&ЛТ;/АСП:текстовое поле&ГТ;
< / FooterTemplate>
& lt;Headerstyle Width= " 15%"></HeaderStyle>
< / asp:TemplateField>
<asp:TemplateField HeaderText= "TEL">
& lt;ItemTemplate>
&ЛТ;АСП:метка идентификатор="lblTel" атрибут runat="сервер" текст=в'<%#Ивала("тел") %&ГТ;'&ГТ;&ЛТ;/АСП:ярлык&ГТ;
< / ItemTemplate>
< EditItemTemplate>
&ЛТ;АСП:текстовое поле с ID="txtTel" атрибут runat="сервер" текст=в'<%# Персонализация("тел") %&ГТ;' ширина="80"&ГТ;&ЛТ;/АСП:текстовое поле&ГТ;
< / EditItemTemplate>
& lt;FooterTemplate>
&ЛТ;АСП:текстовое поле с ID="txtAddTel" атрибут runat="сервер" ширина="80"&ГТ;&ЛТ;/АСП:текстовое поле&ГТ;
< / FooterTemplate>
< / asp:TemplateField>
<asp:TemplateField HeaderText= "INSDATE">
& lt;ItemTemplate>
&ЛТ;АСП:метка идентификатор="lblDate" атрибут runat="сервер" текст=в'<%#Ивала("INSDATE") %&ГТ;'&ГТ;&ЛТ;/АСП:ярлык&ГТ;
< / ItemTemplate>
< EditItemTemplate>
&ЛТ;АСП:текстовое поле с ID="txtDate" атрибут runat="сервер" текст=в'<%# Персонализация("INSDATE") %&ГТ;' ширина="80"&ГТ;&ЛТ;/АСП:текстовое поле&ГТ;
< / EditItemTemplate>
& lt;FooterTemplate>
&ЛТ;АСП:текстовое поле с ID="txtAddDate" атрибут runat="сервер" ширина="80"&ГТ;&ЛТ;/АСП:текстовое поле&ГТ;
< / FooterTemplate>
< / asp:TemplateField>
<asp:TemplateField HeaderText= "утверждение" ItemStyle-Width= "50">
& lt;ItemTemplate>
&ЛТ;АСП:чекбокс с ID="lblcbApproved" проверил=в'<%# Ивала("утверждение")!=Значение dbnull.Ценность?Функция eval("утверждение"):ложная%&ГТ;' атрибут runat="сервер" включена="ложно" /&ГТ;
< / ItemTemplate>
< EditItemTemplate>
&ЛТ;АСП:чекбокс с ID="cbApproved" проверил=в'<%# Ивала("утверждение")!=Значение dbnull.Ценность?Функция eval("утверждение"):ложная%&ГТ;' атрибут runat="сервер" включена="истинной" /&ГТ;
< / EditItemTemplate>
& lt;FooterTemplate>
&ЛТ;АСП:чекбокс с ID="cbAddApproved" атрибут runat="сервер" включена="истинной" /&ГТ;
< / FooterTemplate>
< / asp:TemplateField>

<asp:TemplateField >
& lt;ItemTemplate>
&ЛТ;как ASP:LinkButton элемент ID="btnEdit" текст="редактировать" атрибут runat="сервер" Имя_команды="редактировать" /&ГТ;
< span onclick= " return confirm(delete;') " >
&ЛТ;как ASP:LinkButton элемент ID="btnDelete" текст="удалить" атрибут runat="сервер" Имя_команды="удалить" /&ГТ;
< / span>
< / ItemTemplate>
< EditItemTemplate>
&ЛТ;как ASP:LinkButton элемент ID="btnUpdate" текст="обновить" атрибут runat="сервер" Имя_команды="обновить" /&ГТ;
&ЛТ;как ASP:LinkButton элемент ID="btnCancel" текст="отмена" атрибут runat="сервер" Имя_команды="отмена" /&ГТ;
< / EditItemTemplate>
& lt;FooterTemplate>
&ЛТ;АСП:кнопка ID="btnInsertRecord" атрибут runat="сервер" текст="вставить" ширина="100" ValidationGroup="ValgrpIns" Имя_команды="вставить" /&ГТ;
< / FooterTemplate>
& lt;Headerstyle Width= "15%" />
< / asp:TemplateField>
< / столбцы>
< PagerStyle HorizontalAlign= "Left" VerticalAlign= "Middle" />
< / asp:GridView>
< / div>

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

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

Проверьте, что sproc работает, и результаты правильно отображаются в gridView, когда я не использую javascript для загрузки данных.

Karthik_Mahalingam

разместите код разметки girdview.

Chriz12

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

Karthik_Mahalingam

попробуйте вставить как обычный текст. или напишите в скрипке и поделитесь ссылкой

Chriz12

Я вставляю его как обычный текст, надеюсь, это имеет смысл!

Karthik_Mahalingam

да.
var dv = xml. find ("таблица");
это должна быть Таблица 1, я думаю, проверьте ее.

Chriz12

Спасибо за ответ. Если я изменю его на таблицу 1, то вообще не получу никаких данных.

Karthik_Mahalingam

содержит ли набор данных данные?

Chriz12

Да. Когда я использую var dv = xml. find ("таблица"); я получаю данные, но только для столбцов 0 и 1. (при этом первый столбец записи(0) путается)

1 Ответов

Рейтинг:
2

Vincent Maverick Durano

Цитата:
Проверьте, что sproc работает, и результаты правильно отображаются в gridView, когда я не использую javascript для загрузки данных.


GridView это серверный контроль данных, и это облегчит вашу жизнь при манипулировании им на сервере, потому что вы можете воспользоваться преимуществами встроенных функций, которые он предлагает. Было бы очень больно смешивать ваш клиентский код с серверными элементами управления. Если вы хотите использовать AJAX для заполнения вашей формы, то вы можете сгенерировать html вручную или, возможно, использовать клиентскую сетку, которой вы можете легко управлять. Например: Создание jqGrid с помощью ASP.NET веб-формы и веб-служба JSON[^]

Больше ссылок:
Использование jqGrid с ASP.NET веб-формы-Часть I[^]
Использование jqGrid с ASP.NET веб-формы-Часть II[^]

И конечно, вы можете найти больше примеров, выполнив быстрый поиск в google :)


Chriz12

Спасибо за ответ, я проверю по приведенным ссылкам! То, что я хочу сделать, - это фильтровать данные при вводе текста в текстовое поле, и javacript был предлагаемым решением во многих статьях.

Vincent Maverick Durano

Большинство клиентских сеток, таких как jQueryGrid, предоставляют эту функциональность. Дело в том, что вы не смешиваете свои клиентские и серверные элементы управления привязкой данных для привязки, чтобы сохранить некоторые p. i.t. a ;)