Hello,
I'm trying to load data to datagrid using jquery.
My problem is that I get the value of rownum(0) at header row and at the place of rownum(0) I get the NAME(0). Also, I only get values of columns rownum and NAME (columns 0 and 1).
This is my code:
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
the C# code:
[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;
}
}
}
}
and the 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>
the gridView markup language:
<div style="overflow-x:auto;width:90%">
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" ShowFooter="true"
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">
<Columns>
<asp:TemplateField HeaderText="rownum">
<ItemTemplate>
<asp:Label ID="lblrownum" runat="server" Text='<%#Eval("rownum") %>' Width="30"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IDNO">
<ItemTemplate>
<asp:Label ID="lblIDNO" runat="server" Text='<%#Eval("IDNO") %>' Width="120"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAddIDNO" runat="server" Width="120"> </asp:TextBox>
<asp:RequiredFieldValidator ID="reqIDNO" runat="server" ForeColor="Red" ValidationGroup="ValgrpIns" ControlToValidate="txtAddIDNO" ErrorMessage="*"></asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%#Eval("NAME") %>' Width="180"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtName" runat="server" Text='<%# Bind("NAME ") %>' Width="180"></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAddName" runat="server" Width="180"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqName" runat="server" ForeColor="Red" ValidationGroup="ValgrpIns" ControlToValidate="txtAddName" ErrorMessage="*"></asp:RequiredFieldValidator>
</FooterTemplate>
<HeaderStyle Width="15%"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="POSTADDRESS">
<ItemTemplate>
<asp:Label ID="lblPostalAddress" runat="server" Text='<%#Eval("POSTADDRESS") %>' Width="180"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtPostalAddress" runat="server" Text='<%# Bind("POSTALADDRESS") %>' Width="180"></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAddPostalStreet" runat="server" Width="180"></asp:TextBox>
</FooterTemplate>
<HeaderStyle Width="15%"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="TEL">
<ItemTemplate>
<asp:Label ID="lblTel" runat="server" Text='<%#Eval("TEL") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtTel" runat="server" Text='<%# Bind("TEL") %>' Width="80"></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAddTel" runat="server" Width="80"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="INSDATE">
<ItemTemplate>
<asp:Label ID="lblDate" runat="server" Text='<%#Eval("INSDATE") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDate" runat="server" Text='<%# Bind("INSDATE") %>' Width="80"></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAddDate" runat="server" Width="80"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="APPROVAL" ItemStyle-Width="50">
<ItemTemplate>
<asp:CheckBox ID="lblcbApproved" Checked='<%# Eval("APPROVAL")!=DBNull.Value?Eval("APPROVAL"):false%>' runat="server" Enabled="False" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="cbApproved" Checked='<%# Eval("APPROVAL")!=DBNull.Value?Eval("APPROVAL"):false%>' runat="server" Enabled="True" />
</EditItemTemplate>
<FooterTemplate>
<asp:CheckBox ID="cbAddApproved" runat="server" Enabled="true" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField >
<ItemTemplate>
<asp:LinkButton ID="btnEdit" Text="Edit" runat="server" CommandName="Edit" />
<span onclick="return confirm(delete;')">
<asp:LinkButton ID="btnDelete" Text="Delete" runat="server" CommandName="Delete" />
</span>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="btnUpdate" Text="Update" runat="server" CommandName="Update" />
<asp:LinkButton ID="btnCancel" Text="Cancel" runat="server" CommandName="Cancel" />
</EditItemTemplate>
<FooterTemplate>
<asp:Button ID="btnInsertRecord" runat="server" Text="Insert" Width="100" ValidationGroup="ValgrpIns" CommandName="Insert" />
</FooterTemplate>
<HeaderStyle Width="15%"/>
</asp:TemplateField>
</Columns>
<PagerStyle HorizontalAlign="Left" VerticalAlign="Middle"/>
</asp:GridView>
</div>
Thank you in advance.
What I have tried:
Test that sproc working and the results are showing correctly in the gridView when I'm not using the javascript for loading the data.