Laden...

Threading UpdatePanel

Erstellt von ZeroQool vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.071 Views
Z
ZeroQool Themenstarter:in
322 Beiträge seit 2006
vor 14 Jahren
Threading UpdatePanel

Hallo,

habe ein Problem mit dem Threading. Per Button rufe ich in einem Thread einen Webservice auf. Nun möchte ich gerne die Antwortzeit in einer Textbox wiedergeben, aber ohne ein Postback reagiert mein UpdatePanel nicht. Habt ihr einen guten Tip? Danke

<asp:Content ID="Content4" ContentPlaceHolderID="CPH_Content" runat="server">
<asp:UpdatePanel runat="server" ID="UpdPnl_Benchmark" UpdateMode="Always" >
<ContentTemplate>
<div class="clearfix" style="height: 5px;">
</div>
<div id="formError" class="formErrorInnerDiv" runat="server" style="color: #E03838;
font-weight: normal;" visible="false">
</div>
<div id="formSuccess" class="formSuccessInnerDiv" visible="false" runat="server">
</div>
<div class="clearfix" style="height: 5px;">
</div>
<div style="float: left;">
<asp:Panel ID="pnl_Suche" runat="server" DefaultButton="btn_Start">
Suchbegriff:&nbsp;
<asp:TextBox ID="txtB_Suchbegriff" runat="server" MaxLength="30" Style="float: left"></asp:TextBox>
<asp:Button ID="btn_Start" runat="server" Text="Benchmark starten" OnClick="btn_Start_Click"
CssClass="butt-flat" Style="float: left; margin-left: 10px;" />
</asp:Panel>
</div>
<div class="clearfix" style="height: 15px;">
</div>
<div style="border: solid 1px black; width: 100%; height: 300px; overflow: auto;">
<asp:GridView ID="GDV_Daten" runat="server" PageSize="10" Width="900px" PagerSettings-Mode="Numeric"
AllowPaging="true" OnPageIndexChanging="GDV_Daten_PageIndexChanging">
<PagerSettings Mode="NumericFirstLast" PageButtonCount="10" FirstPageText="Erste Seite"
NextPageText="nächste Seite" PreviousPageText="vorherige Seite" LastPageText="Letzte Seite"
Position="Bottom" />
<PagerStyle HorizontalAlign="Center" />
</asp:GridView>
</div>
<div class="clearfix" style="height: 15px;">
</div>
<div>
<asp:TextBox ID="txtB_Log" runat="server" TextMode="MultiLine" ReadOnly="true" Width="950px"
Height="200px"></asp:TextBox>
</div>
<asp:UpdateProgress AssociatedUpdatePanelID="UpdPnl_Benchmark" ID="updateProgress"
runat="server" DisplayAfter="100" DynamicLayout="true">
<ProgressTemplate>
<div id="progressBackgroundFilter">
</div>
<div id="processMessage" style="text-align: center;">
<img alt="Loading" src="images/ajax-loader.gif" style="background-position: center;"
align="middle" /></div>
</ProgressTemplate>
</asp:UpdateProgress>
<triggers>
<asp:AsyncPostBackTrigger ControlID="btn_Start" />
</triggers>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>


 protected void btn_Start_Click(object sender, EventArgs e)
        {
            aTools.setMessageBox(formError, formSuccess, false, false, "", false);

            if (txtB_Suchbegriff.Text.Trim() != "")
              
                getContent_Thread();
            else
                aTools.setMessageBox(formError, formSuccess, true, false, "Bitte Suchbegriff eingeben.", false);
        }

     private void getContent_Thread()
        {
            Thread aThread = new Thread(getContent);
            aThread.Priority = ThreadPriority.Lowest;
            aThread.Start();
        }

private void getContent()
        {
            System.TimeSpan GemessendeZeit = new System.TimeSpan();
            DateTime StartZeit = DateTime.Now;
.....
   txtB_Log.Text += "Website Zugriffszeit: " + GemessendeZeit.ToString() + "\n";
}


txtB_Log wird nciht angezeigt, bzw aktualisiert

1.433 Beiträge seit 2006
vor 14 Jahren

Das UpdatePanel hat doch zwei UpdateModes: Conditional und Always. Sieher nähere Info's hier.

UpdatePanel-Steuerelement – Einführung

UpdatePanel-Klasse

UpdatePanel-Member

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

Z
ZeroQool Themenstarter:in
322 Beiträge seit 2006
vor 14 Jahren

Damit habe ich mich auch schon beschäftigt. Brachte keiner Erfolge.

1.433 Beiträge seit 2006
vor 14 Jahren

Hmm, dann müsstest Du per Javascript in einem Intervall holen und dann das UpdatePanel manuell refreshen, oder zu verzichtest auf das UpdatePanel und machst einen Zugriff auf die DB per Javascript und einem Javascript Timer der in intervallen das Log auf ein HML schreibt.

Etwas ähnliches hab ich mal für eine zeilenweise Aktualisierung eines GridView gemacht.

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt