我需要显示来自MS SQL 2005的实时数据。我看到一些博客推荐Ajax来解决我的问题。基本上,现在我的default.aspx页面只是为了解决方法,我可以显示数据库中的数据。但是,一旦我手动将数据添加到我的数据库,就没有更新。任何建议家伙解决这个问题?我需要更新datagridview而不刷新页面。
这是我在Default.aspx.cs上的代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
FillDataGridView();
}
protected void up1_Load(object sender, EventArgs e)
{
FillDataGridView();
}
protected void FillDataGridView()
{
DataSet objDs = new DataSet();
SqlConnection myConnection = new SqlConnection (ConfigurationManager.ConnectionStrings["MainConnStr"].ConnectionString);
SqlDataAdapter myCommand;
string select = "SELECT * FROM Categories";
myCommand = new SqlDataAdapter(select, myConnection);
myCommand.SelectCommand.CommandType = CommandType.Text;
myConnection.Open();
myCommand.Fill(objDs);
GridView1.DataSource = objDs;
GridView1.DataBind();
}
}
我的Default.aspx上的代码
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Ajax Sample</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
<Scripts>
<asp:ScriptReference Path="JScript.js" />
</Scripts>
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="up1_Load">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" Height="136px" Width="325px"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridView1" />
</Triggers>
</asp:UpdatePanel>
</form>
</body>
</html>
我现在的问题是如何调用或使用ajax.js以及如何编写代码来调用Default.aspx.cs页面中的FillDataGridView()。
谢谢你们,希望有人能帮我解决这个问题。
答案 0 :(得分:2)
你会找到一个很好的指南here
请参阅代码示例here
更新: http://hubpages.com/hub/Automatic-Refresh-data-on-page-using-AJAX-update-panel
答案 1 :(得分:0)
您是说当数据库中的数据发生变化时,您希望在没有任何用户交互(如刷新按钮)的情况下实时更新页面?
我还没有做过这样的事情,但我想到的一种可能性是调用一个Web服务,它从你的页面Javascript(使用timer重复调用webservice)提供最新的数据集,如果数据发生了变化,导致异步回发(或使用另一个函数更新数据表中的相应值)。
然而,我不知道浏览器是否会顺利处理这样的事情,具体取决于您拥有的数据量。