日期:2014-05-16 浏览次数:20557 次
需求描述:根据数据库查询数据,动态加载用户控件。每个用户控件每5秒刷新判断一次,每次刷新,读取XML数据,进行判断,按照需求刷新用户控件显示图 用户控件代码前台:
<%--显示照片区域--%> <asp:UpdatePanel ID="PictureShow" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional"> <ContentTemplate> <asp:Panel ID="Panel1" runat="server"> <asp:Image ID="imgPicture" CssClass="imgPicture" runat="server" AlternateText="未上传" /> </asp:Panel> </ContentTemplate> </asp:UpdatePanel> <asp:UpdatePanel ID="UpdatePane4" runat="server" UpdateMode="Conditional"> <%--时事更新--%> <ContentTemplate> <asp:Timer ID="CheckTimer" runat="server" Interval="5000" ontick="CheckTimer_Tick"> </asp:Timer> </ContentTemplate> </asp:UpdatePanel>
用户控件后台代码:
private string id="";
public string ID
{
set
{
id = value;
}
}
//Timer_Tick事件
string strPath = Server.MapPath("~/PictureURL.xml");
XmlNode xn = doc.DocumentElement.SelectSingleNode("/xn"+ID);
//判断是否已经更改
if (xnNewUrl == ture)
{
imgPicture.ImageUrl ="NewURL";
//更新的,刷新图片
PictureShow.Update();
}
主页面代码:
protected override void OnInit(EventArgs e) { BLL Check = new BLL(); DataTable dt = Check.SelectAll(); //根据上级人员绑定显示图片框数量 for (int i = 0; i < dt.Rows.Count; i++) { string ID = dt.Rows[i]["ID"].ToString(); //动态添加控件 PictureRefresh control = (PictureRefresh)LoadControl("PictureRefresh.ascx"); control.ID = "ID" + i.ToString(); control.ID = ID; PicPanel.Controls.Add(control); } }