3

フォーラムをプログラミングしています。マイshowcomment.aspxページでは、Repeater を使用して SQL データベースからコメントを取得し、トピックごとに表示しています。

UpdatePanel を使用して、データベースに挿入された新しいコメントを自動更新します。

 <asp:ScriptManager ID="ScriptManager1" runat="server"/>

    <div onclick="__doPostBack('UpdatePanel1', '');">
          <asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load">
            <ContentTemplate>          
              <asp:Repeater ID="RepeaterComment" runat="server">
                ....
              </asp: Repeater...>
            </ContentTemplate>
         </asp: UpdatePanel>
   </div>

UpdatePanel1_Load():

public void UpdatePanel1_Load(Object sender, EventArgs e)
    {
        int idtopic = Convert.ToInt32(Request.QueryString["idtopic"]);
        BindRepeaterComment(idtopic);
    }

Update Panel と Timer Control を使用して UpdatePanel を自動更新することをお勧めします。

<asp:Timer ID="AutoRefreshTimer" runat="server"
        Interval="10000"
        ontick="AutoRefreshTimer_Tick"/>

しかし、新しい行がデータベースに挿入されたときにのみ更新したいだけです。

データベースに新しい行を挿入する関数は、コメント ページの表示と同じページではなく、別の aspx ページにあります。

srcipt を使用して UpdatePanel を更新することもお勧めします。

<script type="text/javascript">

            var UpdatePanel1 = '<%=UpdatePanel1.ClientID%>';

            function ShowItems()
            {
               if (UpdatePanel1 != null) 
               {
                   __doPostBack(UpdatePanel1, '');
               }
            }       

</script>

しかし、ShowItem() 関数を呼び出す方法がわかりません。

誰かが私に尋ねて、行を追加してみてください:UpdatePanel1.Update()データベースに新しい行を追加した後、「新しい行を追加」機能は別のページにあるので、できません。

ボタンなしでデータベースの変更を実現し、新しいコメントを自動更新する方法(データベースに変更があるときに更新するだけ)はどうすればよいですか。

ヘルプ?私は ASP.net を初めて使用するので、何日も解決策を見つけようとしました。

4

1 に答える 1

1

You can use HTML5 Server sent events to capture any change. For more details please check following link.

http://www.w3schools.com/html/html5_serversentevents.asp

You can also check here http://forums.asp.net/t/1885055.aspx

To get the notification from sql database server you can use SQL Dependency in your ASP.NET application.

If you are not using SQL server in that case you can make a call to the db from server and send an event back to the client.

于 2014-02-17T11:54:28.500 に答える