日期:2014-05-16 浏览次数:20654 次
需求描述:根据数据库查询数据,动态加载用户控件。每个用户控件每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);
}
}