【发布时间】:2014-03-29 04:03:05
【问题描述】:
我正在使用 Visual Studio 2012 Ultimate,我一直在寻找有关使用 asp.net Signalr 实时推送数据的信息 进入网络表单。我所拥有的只是聊天应用程序和实时移动网页中的对象。 但是如果我想用数据控件更新页面,我几乎不知道如何应用他们使用的代码 就像通过 sqldatasource 控件与我的数据库绑定的(gridview 或 listview)一样。 请给我一个视频教程或任何文章,演示如何使用绑定了数据控制的信号器更新页面 与数据库一起显示数据。
谢谢...
到目前为止,这是我试图提出的 我的课程文件:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
/// <summary>
/// Summary description for RefreshHub
/// </summary>
namespace mytestSignalR
{
[HubName("refresh")]
public class RefreshHub : Hub
{
string filename;
[HubMethodName("update")]
public void UpdatePage()
{
string conn = @"Server=(LocalDb)\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Windblow.mdf";
SqlConnection connection = new SqlConnection(conn);
SqlDataReader dr;
connection.Open();
// string sql = "INSERT INTO [ProfileTab]([ID],[Name],[Address],[Age],[Occupation],[Nationality]) Values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "' ) ";
string sql = "Select * From [ImageTab] ";
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.CommandType = CommandType.Text;
dr = cmd.ExecuteReader();
while (dr.Read())
{
filename = dr.GetString(0);
}
dr.Close();
connection.Close();
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<RefreshHub>();
context.Clients.All.Databind(filename);
}
}
}
页面上要更新的JS代码:
<script src="http://code.jquery.com/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-1.6.4-vsdoc.js"></script>
<script src="~/Scripts/jquery-1.6.4.js"></script>
<script src="~/Scripts/jquery-1.6.4.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.0.3.js"></script>
<script src="~/Scripts/jquery.signalR-2.0.3.min.js"></script>
<script type="text/javascript" src="~/signalr/hubs"></script>
<script type ="text/javascript" >
$(function () {
var page = $.connection.refreshHub;
// $lview = $("#ListView1");
page.client.databind = function (filename) {
// $lview = $("#ListView1");
$("#ListView1").bind(filename);
// $lview.bind(filename);
};
$.connection.hub.start().done(function () {
page.server.updatePage();
});
});
</script>
但运行时仍然出现运行时错误。它说 行:21 错误:无法获取未定义或空引用的属性“refreshHub”
它在这行代码上突出显示var page = $.connection.refreshHub;
我哪里做错了?我在这里想念什么?谢谢。
【问题讨论】:
-
请贴出你试过的代码..
-
请看我更新的帖子谢谢!
-
为什么你有 jquery 和 jquery.min、signalr 和 signalr.min?您应该只使用其中的一个(也不要使用 .vsdoc)。另一件事,这个“~/signalr/hubs”是否正确?没有“.js”文件?
-
现在,在将脚本引用更改为 后,我再也没有遇到任何运行时错误,但我的页面上没有任何反应。除非您重新加载浏览器,否则列表视图不会更新。关于我的 jquery 代码或 RefreshHub.cs 出了什么问题的任何想法?
标签: c# javascript jquery asp.net signalr