我使用AJAX Timer在ASP.NET C#中创建了一个聊天应用程序,由于updatepanel
的定期更新,我无法控制滚动条而无法选择文本。现在,我想要将从数据库接收的数据附加到DIV的替代方法是什么。使用C#与AJAX或jQuery或JavaScript如何将检索到的文本追加到DIV?
我的代码部分
while(dr.read())
{
string chatvalues = dr[0].ToString();
// How to append this chatvalues a DIV
}
答案 0 :(得分:4)
如果您只想要纯文本,并假设您的div的id为divChat并且设置为runat =“server”,则可以执行以下操作:
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>