新手求助,求高手来看一看
由于最近领导要求,才接触asp.net 于是用VS2010新建了一个C#的asp.net网站 ,基本是Web.config、Site.master、Defalut.aspx这些文件,每次运行也是从Site.master进入
由于要实现局部数据的无闪刷新,瞬间就把我这个新手难住了。看了好多网上的例子
现在Defalut.aspx代码是这种情况,目地是对Ua自动刷新,其他的文件都是默认的未修改
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="Button1" runat="server"
style="top: 485px; left: 670px; position: absolute; height: 26px; width: 56px"
Text="Button" onclick="Timer1_Tick" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
</asp:Timer>
<asp:Label ID="Ua" runat="server" Text="Ua"
style="top: 570px; left: 723px; position: absolute; width: 31px"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
cs文件Timer1_Tick方法是查询数据库并赋值 this.Ua.Text = “”;
结果是不会自动刷新,Timer就根本不触发Timer1_Tick的事件,但是点了Button按钮是可以触发的
现在主要是以下疑惑:1.是不是因为新建的项目是WebForm就不可以使用Timer了,为什么Timer不触发呢?
2.点击按钮有时候会出现闪屏,如何解决呢?
3.看见网上有些是JS实现的,但是我看见好多都是用到JSp,可是asp。net里面都是aspx文件啊?
4.如果哪位大大有能解决这个问题的事例,还请给小的看看,好人一生平安啊~~
------解决方案--------------------Button要放到UpdatePanel里面 ,另外你要的功能这是点击按钮 然后从数据库中去取出数据 并无刷新的呈现出来,这里貌似不用Timer把
页面
HTML code
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label runat="server" ID="lblResult"></asp:Label>
<asp:Button runat="server" ID="btnTest" Text="测试" />
</ContentTemplate>
</asp:UpdatePanel>
------解决方案--------------------
最好不要在依赖服务器控件这种吧,试试直接用html+AJAX的那种很容易就达到你的效果
示例代码如下
AjaxRefresh.aspx
HTML code
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
AjaxRefresh
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>
AjaxRefresh</h2>
<div id="currentTime">
</div>
<script language="javascript" type="text/javascript">
$(document).ready(function () {
//每秒定时调用后台刷新数据
var date = new Date();
var mytime = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" +
date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
$("#currentTime").html(mytime);
window.setInterval(AjaxRefreshContent, 1000);
})
//定时异步刷新数据库任务
var AjaxRefreshContent = function () {
$.ajax({