Laden...

Atlas/ASP-Problem: Neue Einträge in der DB nachladen und anzeigen

Erstellt von =neo= vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.545 Views
=
=neo= Themenstarter:in
5 Beiträge seit 2006
vor 17 Jahren
Atlas/ASP-Problem: Neue Einträge in der DB nachladen und anzeigen

Ich hab grad ein kleines Problem und ich würde mich riesig freuen, wenn ich hier Hilfe finden könnte:

Man stelle sich mein Programm folgendermaßen vor: Ein Eingabefeld zur Eingabe von Informationen, die direkt dadrunter in einer Liste angezeigt werden. Dieses Programm soll von mehreren Nutzern gleichzeitig zum Befüllen der Liste benutzt werden.

Ich hätte nun gerne, dass die Liste per AJAX/ATLAS alle paar Sekunden alle Einträge (also auch die neuen von allen anderen Nutzern) anzeigt, unabhängig davon ob ich selber Einträge mache oder nicht.

Ich benutze bisher dazu das atlas:UpdatePanel und atlas:TimerControl. Es erfolgt nun auch im angegebenen Intervall ein Update der Liste, neue Daten die in anderen Browserfenstern eigegeben worden sind, werden aber nicht angezeigt. Erst wenn ich selber neue Daten eingebe wird die Liste richtig aktualisiert.

Kann mir nun jemand sagen was ich falsch machen und die richtige Richtung weisen? Im Netz fand ich bisher nur hochkomplizierte Chat-Lösungen mit WebServices etc. das sieht für mein kleines Problem eher nach Overkill aus X(

Vielen Dank schon mal!

564 Beiträge seit 2005
vor 17 Jahren

Machst du ein BindData() auf die Liste?

=
=neo= Themenstarter:in
5 Beiträge seit 2006
vor 17 Jahren

Hmmm nein, das fehlt. Meinst Du das ist die Lösung?

564 Beiträge seit 2005
vor 17 Jahren

Kenn ich deinen Code?

K
20 Beiträge seit 2006
vor 17 Jahren

Ich glaube der neo liest die Daten seperat durch eine Funktion aus der Datenbank aus und schreibt sie dann in die Liste.

=
=neo= Themenstarter:in
5 Beiträge seit 2006
vor 17 Jahren

Hab mal versucht den Code aufs wesentliche zusammenzukürzen:

Teil 1: Die Liste


<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="TodoList.aspx.cs" Inherits="TodoList" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">


    <atlas:ScriptManager ID="s1" EnablePartialRendering="true" runat="server" />
    <atlas:TimerControl runat="server" Interval="5000" ID="tickerTimer" />


    <atlas:UpdatePanel Mode="Conditional" ID="up1" runat="server">
        <ContentTemplate>

            <asp:GridView ID="GridView1" CssClass="gridview" AlternatingRowStyle-CssClass="even" runat="server" AutoGenerateColumns="False" DataKeyNames="TaskID" DataSourceID="ObjectDataSource2" AllowPaging="True" AllowSorting="True">
                <Columns>
                    <asp:CommandField ShowEditButton="True" />
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:CheckBoxField DataField="Complete" HeaderText="Complete" SortExpression="Complete" />
                </Columns>
            
            </asp:GridView>
        </ContentTemplate>
        
        <Triggers>
            <atlas:ControlEventTrigger ControlID="tickerTimer" EventName="Tick" />
        </Triggers>
    </atlas:UpdatePanel>

Teil 2: Eingabefeld


    <atlas:UpdatePanel ID="up2" Mode="Conditional" runat="server">
        <ContentTemplate>
            <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="TaskID" DataSourceID="ObjectDataSource2" DefaultMode="Insert">
                <Fields>
                    <asp:BoundField DataField="TaskID" HeaderText="TaskID" InsertVisible="False" ReadOnly="True"
                        SortExpression="TaskID" />
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:CheckBoxField DataField="Complete" HeaderText="Complete" SortExpression="Complete" />
                    <asp:CommandField ShowInsertButton="True" />
                </Fields>
            </asp:DetailsView>
        </ContentTemplate>
    
    </atlas:UpdatePanel>

Teil3: Datenquelle

    
    <asp:thumbsup:bjectDataSource ID="ObjectDataSource2" runat="server" DeleteMethod="Delete"
        InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetTasksByStatus"
        TypeName="TasksTableAdapters.TasksTableAdapter" UpdateMethod="Update">
        <DeleteParameters>
            <asp:Parameter Name="Original_TaskID" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="Name" Type="String" />
            <asp:Parameter Name="Complete" Type="Boolean" />
            <asp:Parameter Name="Original_TaskID" Type="Int32" />
        </UpdateParameters>
        <SelectParameters>
            <asp:ControlParameter ControlID="DropDownList1" Name="IsComplete" PropertyName="SelectedValue"
                Type="Boolean" />
        </SelectParameters>
        <InsertParameters>
            <asp:Parameter Name="Name" Type="String" />
            <asp:Parameter Name="Complete" Type="Boolean" />
        </InsertParameters>
    </asp:thumbsup:bjectDataSource>
    <asp:thumbsup:bjectDataSource ID="ObjectDataSource1" runat="server"></asp:thumbsup:bjectDataSource>
</asp:Content>


Zwischen den Teilen befindet sich nur irrelevanter HTML-Code