如何实时刷新数据

星辰hq 2015-09-19 03:43:48
前台有一个div,后台查询数据库自动添加table,怎么让table里的数据实时刷新?
注:因为table不是放在一起,所以没法用GridView,只能用table一个个去表示。
效果图如下:


<div class="div_PD_Data" runat="server" id="div_PD_Data"></div>


protected void DataBind() {
StringBuilder strSQL = new StringBuilder();
strSQL.Clear();
strSQL.Append("select name from syscolumns where id = object_id(N'data_table');");
string strsql = strSQL.ToString();
DataTable dt = DB.GetDataBySQL(strsql);

StringBuilder strSQL1 = new StringBuilder();
strSQL1.Clear();
strSQL1.Append("select * from data_table");
string strsql1 = strSQL1.ToString();
DataTable dt1 = DB.GetDataBySQL(strsql1);

#region 自动添加LS数据表
for (int i = 0; i < dt.Rows.Count; i++)
{
#region 自动添加div
HtmlContainerControl Div = new HtmlGenericControl("div");
Div.ID = "PD_table" + (i+1);
Div.Attributes.Add("class", "div_table");
Div.Style.Add("position", "absolute");
Div.Style.Add("left", (i*100)+"px");
div_PD_Data.Controls.Add(Div);
#endregion

#region 添加table
HtmlContainerControl tb = new HtmlGenericControl("table");
tb.ID = "table" + (i + 1);
tb.Attributes.Add("cellspacing", "0");
tb.Attributes.Add("cellpadding", "0");
tb.Style.Add("height", "88px");
tb.Style.Add("width", "92px");
tb.Style.Add("border-collapse", "collapse");
Div.Controls.Add(tb);
#endregion

#region 添加行
HtmlContainerControl tr1 = new HtmlGenericControl("tr");
tb.Controls.Add(tr1);
HtmlContainerControl tr2 = new HtmlGenericControl("tr");
tb.Controls.Add(tr2);
HtmlContainerControl tr3 = new HtmlGenericControl("tr");
tb.Controls.Add(tr3);
HtmlContainerControl tr4 = new HtmlGenericControl("tr");
tb.Controls.Add(tr4);
#endregion

#region 添加th,td
//表头
HtmlContainerControl th = new HtmlGenericControl("th");
th.Attributes.Add("align", "center");
th.Attributes.Add("valign", "middle");
th.Attributes.Add("colspan", "2");
tr1.Controls.Add(th);

//第一行,A相
HtmlContainerControl td1 = new HtmlGenericControl("td");
td1.Attributes.Add("align", "center");
td1.Attributes.Add("valign", "middle");
td1.Style.Add("width", "40px");
tr2.Controls.Add(td1);
HtmlContainerControl td2 = new HtmlGenericControl("td");
td2.Attributes.Add("align", "center");
td2.Attributes.Add("valign", "middle");
td2.Style.Add("width", "52px");
tr2.Controls.Add(td2);

//第二行,B相
HtmlContainerControl td3 = new HtmlGenericControl("td");
td3.Attributes.Add("align", "center");
td3.Attributes.Add("valign", "middle");
td3.Style.Add("width", "40px");
tr3.Controls.Add(td3);
HtmlContainerControl td4 = new HtmlGenericControl("td");
td4.Attributes.Add("align", "center");
td4.Attributes.Add("valign", "middle");
td4.Style.Add("width", "52px");
tr3.Controls.Add(td4);

//第三行,C相
HtmlContainerControl td5 = new HtmlGenericControl("td");
td5.Attributes.Add("align", "center");
td5.Attributes.Add("valign", "middle");
td5.Style.Add("width", "40px");
tr4.Controls.Add(td5);
HtmlContainerControl td6 = new HtmlGenericControl("td");
td6.Attributes.Add("align", "center");
td6.Attributes.Add("valign", "middle");
td6.Style.Add("width", "52px");
tr4.Controls.Add(td6);
#endregion

#region 数据
//表头
LinkButton ltn1 = new LinkButton();
ltn1.ID = "table_top" + (i + 1);
ltn1.CssClass = "lkbtn";
ltn1.Style.Add("width", "100%");
ltn1.Style.Add("display", "inline-block");
ltn1.Text = dt.Rows[i][0].ToString();
ltn1.ToolTip = "查看详情";
ltn1.Command += new CommandEventHandler(table_top1_Click);
th.Controls.Add(ltn1);

// A相
Label lb1 = new Label();
lb1.ID = "table" + i + "_left_1";
lb1.ForeColor = System.Drawing.Color.Yellow;
lb1.Font.Bold = true;
lb1.Text = "A相";
td1.Controls.Add(lb1);
Label lb2 = new Label();
lb2.ID = "table" + i + "_right_1";
lb2.ForeColor = System.Drawing.Color.Yellow;
lb2.Font.Bold = true;
lb2.Text = dt1.Rows[0][i + 1].ToString();
td2.Controls.Add(lb2);

// B相
Label lb3 = new Label();
lb3.ID = "table" + i + "_left_2";
lb3.ForeColor = System.Drawing.Color.Yellow;
lb3.Font.Bold = true;
lb3.Text = "B相";
td3.Controls.Add(lb3);
Label lb4 = new Label();
lb4.ID = "table" + i + "_right_2";
lb4.ForeColor = System.Drawing.Color.Yellow;
lb4.Font.Bold = true;
lb4.Text = dt1.Rows[1][i + 1].ToString();
td4.Controls.Add(lb4);

// C相
Label lb5 = new Label();
lb5.ID = "table" + i + "_left_3";
lb5.ForeColor = System.Drawing.Color.Yellow;
lb5.Font.Bold = true;
lb5.Text = "C相";
td5.Controls.Add(lb5);
Label lb6 = new Label();
lb6.ID = "table" + i + "_right_3";
lb6.ForeColor = System.Drawing.Color.Yellow;
lb6.Font.Bold = true;
lb6.Text = dt1.Rows[2][i + 1].ToString();
td6.Controls.Add(lb6);
#endregion
}
#endregion
dt.Dispose();
dt1.Dispose();
}
...全文
455 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
小程序袁 2015-09-24
  • 打赏
  • 举报
回复
引用 11 楼 qq_25409579 的回复:
数据绑定,数据一旦改变,显示也跟着改变
这样才对,秒秒刷新有什么用?浪费资源
fudapeng7 2015-09-23
  • 打赏
  • 举报
回复
数据绑定,数据一旦改变,显示也跟着改变
星辰hq 2015-09-23
  • 打赏
  • 举报
回复
引用 9 楼 u010085567 的回复:
实时刷新是啥意思?数据有改动的时候就刷新?还是秒秒刷新?
秒秒刷新
小程序袁 2015-09-22
  • 打赏
  • 举报
回复
实时刷新是啥意思?数据有改动的时候就刷新?还是秒秒刷新?
星辰hq 2015-09-22
  • 打赏
  • 举报
回复
引用 5 楼 myhope88 的回复:
直接用ajax定时就行了吧
能给个例子么
星辰hq 2015-09-22
  • 打赏
  • 举报
回复
引用 6 楼 huaneramn 的回复:
你手动刷新不就更新了。。。。。。。。。。。。。
我要是想手动刷新我就不用来这里问了
huaneramn 2015-09-21
  • 打赏
  • 举报
回复
你手动刷新不就更新了。。。。。。。。。。。。。
myhope88 2015-09-21
  • 打赏
  • 举报
回复
直接用ajax定时就行了吧
ajianchina 2015-09-19
  • 打赏
  • 举报
回复
最好别依赖服务器控件,写一个ashx输出类似下面的josn数据 {"#1": {"A": "20","B": "30","C": "40"},"#2": {"A": "30", "B": "40","C": "50" }} 然后通过Ajax获取,并根据josn里的#编号更新对应表格的数据,很简单的就实现了,获取及更新操作参考: http://www.jb51.net/article/46622.htm
星辰hq 2015-09-19
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
查下ajax的概念,你这个实时还不需要SignalR
我每一个table放入一个UpdatePanel里面,可是刷新的时候,所有的table都不见了,这是为什么
星辰hq 2015-09-19
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
查下ajax的概念,你这个实时还不需要SignalR
你是说用UpdatePanel么? 我有用过,但不知道我哪里弄错了,总是不行
  • 打赏
  • 举报
回复
查下ajax的概念,你这个实时还不需要SignalR

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧