C#在聊天脚本中将数据附加到DIV

时间:2012-01-11 18:31:47

标签: c# javascript jquery asp.net ajax

我使用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
}

1 个答案:

答案 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>