JQGrid в asp.net не отображает данные (не видно)

99
12

Я следую этому примеру, и мне сложно отображать данные в gridview. Когда страница загружается, она попадает в GetData и возвращает значения.

Если в ближайших окнах после заполнения данных и просмотра count ?dtResult.Rows.Count я получаю 1001. Поэтому я знаю, что у меня есть данные. Однако, когда я отлаживаю приложение, я просто получаю три кнопки. Что мне здесь не хватает?

Здесь код aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="TestApp.test" %>
<%@ Register Assembly="Trirand.Web" TagPrefix="trirand" Namespace="Trirand.Web.UI.WebControls" %>
<!DOCTYPE html>
<html lang="en-us">
<head id="Head1" runat="server">
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" media="screen" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/themes/redmond/jquery-ui.css" />
<!-- The jQuery UI theme extension jqGrid needs -->
<link rel="stylesheet" type="text/css" media="screen" href="/themes/ui.jqgrid.css" />
<!-- jQuery runtime minified -->
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-2.0.3.min.js" type="text/javascript"></script>
<!-- The localization file we need, English in this case -->
<script src="/js/trirand/i18n/grid.locale-en.js" type="text/javascript"></script>
<!-- The jqGrid client-side javascript -->
<script src="/js/trirand/jquery.jqGrid.min.js" type="text/javascript"></script>

<style type="text/css">
body, html { font-size: 80%; }
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="message">

<script type="text/javascript">

function addRow() {
var grid = jQuery("#<%= JQGrid1.ClientID %>");
grid.editGridRow("new", grid.addDialogOptions);
}

function editRow() {
var grid = jQuery("#<%= JQGrid1.ClientID %>");
var rowKey = grid.getGridParam("selrow");
var editOptions = grid.getGridParam('editDialogOptions');
if (rowKey) {
grid.editGridRow(rowKey, editOptions);
}
else {
alert("No rows are selected");
}
}

function delRow() {
var grid = jQuery("#<%= JQGrid1.ClientID %>");
var rowKey = grid.getGridParam("selrow");
if (rowKey) {
grid.delGridRow(rowKey, grid.delDialogOptions);
}
else {
alert("No rows are selected");
}
}
</script>

<input type="button" onclick="addRow()" value="Add" />
<input type="button" onclick="editRow()" value="Edit" />
<input type="button" onclick="delRow()" value="Delete" />

<trirand:jqgrid runat="server" ID="JQGrid1"
OnRowDeleting="JQGrid1_RowDeleting"
OnRowAdding="JQGrid1_RowAdding"
OnRowEditing="JQGrid1_RowEditing">
<Columns>
<trirand:JQGridColumn DataField="Addressbookid" Editable="false" PrimaryKey="true" />
<trirand:JQGridColumn DataField="ClientName" Editable="true" />
<trirand:JQGridColumn DataField="Clientno" Editable="true" />
<trirand:JQGridColumn DataField="IndustryName" Editable="true" />
</Columns>
<ToolBarSettings ShowEditButton="true" ShowAddButton="true" ShowDeleteButton="true" />
<EditDialogSettings CloseAfterEditing="true" Caption="The Edit Dialog" />
<AddDialogSettings CloseAfterAdding="true" />

</trirand:jqgrid>

</div>
<br /><br />

</div>
</form>

Здесь codebehind:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;

namespace TestApp
{
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
JQGrid1.DataSource = GetData();
JQGrid1.DataBind();
}

protected DataTable GetData()
{
if (Session["EditDialogData"] == null)
{
// Create a new Sql Connection and set connection string accordingly
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["Sandbox"].ConnectionString;
sqlConnection.Open();

string sqlStatement = "Select * from voiceportal.dbo.clients_v";

// Create a SqlDataAdapter to get the results as DataTable
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlStatement, sqlConnection);

// Create a new DataTable
DataTable dtResult = new DataTable();

// Fill the DataTable with the result of the SQL statement
sqlDataAdapter.Fill(dtResult);

Session["EditDialogData"] = dtResult;

return dtResult;
}
else
{
return Session["EditDialogData"] as DataTable;
}
}
}

}

Любые предложения о том, как я могу это исправить?

благодаря

спросил(а) 2021-01-25T16:36:31+03:00 4 месяца, 3 недели назад
1
Решение
63

Мои два цента.

Убедитесь, что файл locals js сетки находится в нужном месте и хорошо зарекомендовал себя в вашем браузере. См. Соответствующую строку: <script src="/js/trirand/i18n/grid.locale-en.js" type="text/javascript"></script> Откройте консоль разработчика с помощью F12, обновите страницу и посмотрите для загруженных файлов и сообщений об ошибках на консоли, которые могут определить, хорошо ли это происходит.

Дважды проверьте, что данные, которые вы обслуживаете, соответствуют конфигурации столбца. Обратите особое внимание на кожу верблюда. Свойства.NET начинаются с прописных букв, они верблюд, но данные JSON часто начинаются с нижнего регистра. Это также зависит от того, используете ли вы какие-либо преобразования (например, NewtonSoft и прочее). Я не знаю, что в вашей таблице voiceportal.dbo.clients_v, пожалуйста, укажите вашу схему. В вашем ASPX код Addressbookid и Clientno не CAMEL обсаженных. Не должны ли они быть AddressbookId и ClientNo? Зависит от вашей схемы и того, что на самом деле происходит через провод.

ответил(а) 2021-01-25T16:36:31+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема