обновить datagridview, используя ajax в моем asp.net без обновления страницы. (Отображение данных в реальном времени) - PullRequest
2 голосов
/ 05 марта 2010

Мне нужно отображать данные в реальном времени из MS SQL 2005. Я видел несколько блогов, которые рекомендуют Ajax для решения моей проблемы. По сути, сейчас у меня есть страница default.aspx только для временного решения, которое я мог бы отображать данные из моей БД. Но как только я добавляю данные вручную в свою БД, обновление не производится. Любые предложения, ребята, чтобы решить эту проблему? Мне нужно обновить datagridview без обновления страницы.

Вот мой код на Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        FillDataGridView();
    }

    protected void up1_Load(object sender, EventArgs e)
    {
        FillDataGridView();
    }

    protected void FillDataGridView()
    {
        DataSet objDs = new DataSet();
        SqlConnection myConnection = new SqlConnection  (ConfigurationManager.ConnectionStrings["MainConnStr"].ConnectionString);
        SqlDataAdapter myCommand;
        string select = "SELECT * FROM Categories";
        myCommand = new SqlDataAdapter(select, myConnection);
        myCommand.SelectCommand.CommandType = CommandType.Text;
        myConnection.Open();
        myCommand.Fill(objDs);

        GridView1.DataSource = objDs;
        GridView1.DataBind();
    }
}

Код моего Default.aspx

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Ajax Sample</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
            <Scripts>
                   <asp:ScriptReference Path="JScript.js" />      
            </Scripts>
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="up1_Load">
            <ContentTemplate>
                <asp:GridView ID="GridView1" runat="server" Height="136px" Width="325px"/>
            </ContentTemplate>
                <Triggers> 
                    <asp:AsyncPostBackTrigger ControlID="GridView1" /> 
                </Triggers> 
        </asp:UpdatePanel>
    </form>
</body>
</html>

Моя проблема сейчас заключается в том, как вызвать или использовать ajax.js и как написать код для вызова FillDataGridView () на моей странице Default.aspx.cs.

Спасибо, ребята, надеюсь, кто-нибудь может помочь мне в этой проблеме.

Ответы [ 2 ]

2 голосов
/ 05 марта 2010

Вы найдете хорошее руководство для этого здесь

См. Примеры кода здесь

Обновление: http://hubpages.com/hub/Automatic-Refresh-data-on-page-using-AJAX-update-panel

0 голосов
/ 20 марта 2010

Вы говорите, что хотите обновлять страницу в режиме реального времени без какого-либо вмешательства пользователя (например, кнопки обновления) при изменении данных в вашей БД?

Я не сделал ничего подобного, но одна возможность, которая приходит мне в голову, это вызов веб-службы, которая выдает последний набор данных со своей страницы Javascript (используя таймер для многократного вызова веб-службы), и если есть изменения в данных , вызвать асинхронную обратную передачу (или использовать другую функцию для обновления соответствующих значений в таблице данных).

Я не знаю, однако, будет ли браузер обрабатывать что-то подобное плавно, в зависимости от объема данных, которые у вас есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...