SQL 数据库表到 MVC 网页使用 Javascript
SQL Database table to MVC webpage using Javascript
我正在尝试使用控制器填充MVC网页,并使用仅使用C#,HTML和Javascript的视图。由于当前使用的格式,我不使用模型或 php 是必不可少的。
我目前使用以下代码在网页中填充了所有数据。
public class LANSweeperMeshResultsController : Controller
{
public string GetLANSweeperToAutotaskData()
{
string query = "SELECT * FROM LANSweeperToAutotask";
SqlCommand cmd = new SqlCommand(query);
return GetData(cmd).GetXml();
}
private static DataSet GetData(SqlCommand cmd)
{
string connString = "Data Source=ldn-sql01;Initial Catalog=lansweeperdb;Persist Security Info=True;Use" +
"r ID=lansweeperdataread;Password=password";
using (SqlConnection con = new SqlConnection(connString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds);
return ds;
}
}
}
}
}
但是,我不确定如何格式化视图页面中的数据并相应地设置其样式,我对此相对较新,因此可以理解的内容将不胜感激。
我当前视图页面上的JS如下所示:
<script type="text/javascript">
// calling jquery functions once document is ready
$(document).ready(function () {
// retreving data on button click
$("#btnLoad").click(RunLANSweeper());
//loading screen functionality - this part is additional - start
$("#divTable").ajaxStart(OnAjaxStart);
$("#divTable").ajaxError(OnAjaxError);
$("#divTable").ajaxSuccess(OnAjaxSuccess);
$("#divTable").ajaxStop(OnAjaxStop);
$("#divTable").ajaxComplete(OnAjaxComplete);
//loading screen functionality - this part is additional - end
});
// ajax call
var interval = setInterval(function () { DisplayLANSweeperResults() }, 10000);
function DisplayLANSweeperResults() {
$.ajax({
type: "GET",
url: "/GetLANSweeperToAutotaskData/GetLANSweeperToAutotaskData",
data: '{}',
contentType: "application/json;",
dataType: "json",
success: OnSuccess,
failure: OnFailure,
error: OnError
});
// this avoids page refresh on button click
return false;
}
// on sucess get the xml
function OnSuccess(response) {
//debugger;
var xmlDoc = $.parseXML(response.d);
var xml = $(xmlDoc);
var customers = xml.find("Table");
//showOnATable(assets);
}
//show data on a table
function showOnATable(assets) {
//debugger;
var headers = [];
var rows = [];
// header section
headers.push("<tr>");
headers.push("<td><b>Asset Name</b></td>");
headers.push("<td><b>Manufacturer</b></td>");
headers.push("<td><b>Model</b></td>");
headers.push("</tr>");
// rows section
$.each(assets, function () {
var asset = $(this);
rows.push("<tr>");
rows.push("<td>" + $(this).find("AssetID").text() + "</td>");
rows.push("<td>" + $(this).find("Manufacturer").text() + "</td>");
rows.push("<td>" + $(this).find("Model").text() + "</td>");
rows.push("</tr>");
});
var top = "<table class='gridtable'>";
var bottom = "</table>";
var table = top + headers.join(" ") + rows.join(" ") + bottom;
$("#divTable").empty();
$("#divTable").html(table);
}
</script>
但唉,这行不通。任何帮助非常感谢。
为什么不使用 Slickgrid 插件 ?
这比编写自己的表简单得多.
此外,它使用divs 而不是表格并实现虚拟渲染.
表标记使超过 20 到 50 行的表非常慢。
还有你为什么要使用$.parseXML(response.d);
当您设置
contentType: "application/json;",
dataType: "json",
要么返回 XML,要么返回 json。
此外,您不需要数据集,您可以填写System.Data.DataTable。然后你可以使用 system.web.extensions.dll 将数据表序列化为 json,这样就不需要 XML。在javascript中处理要好得多。
System.Web.Script.Serialization.JavascriptSerializer ser = new JavaScriptSerializer();
ser.Serialize(dt);
相关文章:
- 打开网页后立即获取网页的活动javascript函数
- Android键盘不适用于包含Javascript的网页
- 网页上失败的javascript会导致所有其他脚本失败
- 使用PowerShell在JavaScript网页上搜索文本字符串
- 等待Javascript网页抓取功能完成,然后再运行下一页
- 如何在Javascript网页中实现孤岛危机纳米服风格的菜单
- SeleniumjSoup从Javascript网页获取数据
- 从R中的javascript(网页)中删除xls文件
- 来自HTML/Javascript网页的Modbus TCP通信
- Javascript网页期望至少加载一个地图,但实际上可以'不要装任何东西
- 使用谷歌地图的javascript网页不能在Android上工作
- 如何使用Python与javascript网页交互
- 如何仅使用python标准库抓取javascript网页
- 在断开连接后检索html/javascript网页
- Javascript -网页内容字符串
- Javascript网页搜索定时器
- Javascript网页,下一张图片
- 用phantomjs渲染一个javascript网页页面
- Python - JavaScript 网页抓取与硒不能正常工作
- 从javascript网页中提取数据