[英]manually updating database table values are not reflecting in webpage - aspnet mvc
[英]SQL Database table to MVC webpage using Javascript
我正在嘗試使用Controller填充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>
但是a,這行不通。 任何幫助,不勝感激。
您為什么不使用Slickgrid插件?
這比編寫自己的表要簡單得多。
它還使用divs代替table並實現虛擬渲染。
table標簽使超過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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.