如果你只是想简单的文本,并假设您的div有divChat的ID和设置为RUNAT =“服务器”,你可以这样做:
var sbChatData = new System.Text.StringBuilder(1000);
while(dr.read())
{
sbChatData.AppendLine(dr[0].ToString());
}
divChat.InnerText += sbChatData.ToString();
更新
到回发或使用更新面板的替代方法是使用Ajax请求或静态页面方法来检索您想要在div中使用的值。
下面是使用页面方法一个简单的例子:
1)如果你没有它已经,添加脚本经理到您的网页:
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" runat="server" />
2)添加一个静态方法来你的网页中抓取的聊天内容:
[System.Web.Services.WebMethod]
public static string GetChatData()
{
// Some additional code; you will probably also need to pass a paramter for the chat id
var sbChatData = new System.Text.StringBuilder(1000);
while (dr.read())
{
sbChatData.AppendLine(dr[0].ToString());
}
return sbChatData.ToString();
}
3)添加JavaScript来获取聊天数据,并更新DIV:
<script language="javascript" type="text/javascript">
function UpdateChatData() {
var sChatData = PageMethods.GetChatData();
if (sChatData != null) {
document.getElementById('divChat').innerText = sChatData;
}
}
</script>
这是继续追加完整值与旧值。 – 2012-01-11 19:05:37
@Madcoder。如果您每次都从数据库中读取所有值,则可以将'divChat.InnerText + ='更改为'divChat.InnerText =' – 2012-01-11 19:12:45
但是,如果我在Timer_Tick中编写此代码,那么我也遇到了相同的问题。如果我在Page_Load中写入相同的内容,我必须重新加载每次更新值。 – 2012-01-11 19:36:12