Avatar billede trumf Nybegynder
28. januar 2006 - 19:50 Der er 13 kommentarer og
1 løsning

problem med dropdown

Hejsa E

Jeg har en usercontrol med en dropdownlist, som skal opdatere nogle data, alt efter hvilken værdi der vælges.
Problemet er at den ikke fanger den værdi der vælges, men i stedet den forrige værdi.

Jeg kan se at der laves et postback og jeg udskriver værdien til en label, men altså den værdi der var før selectedchange.

Hvad er årsagen til det ?
Avatar billede Syska Mester
28. januar 2006 - 20:20 #1
Smid lidt kode?

Skal den værdi fra listen bruges på samme usercontrol eller?

// ouT
Avatar billede trumf Nybegynder
28. januar 2006 - 21:28 #2
protected void ddShowPage_SelectedIndexChanged(object sender, EventArgs e)
    {
        ucSelectEventArgs args = new ucSelectEventArgs();
        CurrentPage = Convert.ToInt32(this.ddShowPage.SelectedValue);
        args.arCurrentPage = CurrentPage;
        EnableDisableButtons(CurrentPage, TotalPages);
        this.lblLink2.Text = "xx " + this.ddShowPage.SelectedValue.ToString();
        OnPageChanged(args);
    }

værdien bruges på parent siden og overføres dertil via en delegate,

der  er også nogle knapper der tæller en side frem og tilbage og de virker fint. dropdownen opdateres med den aktuelle side når der klikkes på knapperne.

Hvis så siden feks står på 3 og jeg vælger side 5 i dropdownlisten så står den på side 5 i et splitsekund, siden opdateres og dropdownlisten er tilbage på side 3 som før. og der står side 3 i lblLink2.

Det er som om der der laves postback tilbage i tiden!!!
Avatar billede Syska Mester
28. januar 2006 - 22:05 #3
*irkkkk*

ved jeg sq ikke lige.... problemet er vel at den først bliver behandlet som noget af det sidste, og derfor først vises på næste side... prøv at debug dig gennem det, så kan du nemt se hvad der sker.....

// ouT
Avatar billede trumf Nybegynder
28. januar 2006 - 22:32 #4
Når jeg debugger den, fanger den eventen fint, men ddShowPage.SelectedValue er stadig den forrige værdi, selvom jeg kan se på siden at det er noget andet der er valgt!
Avatar billede trumf Nybegynder
28. januar 2006 - 22:39 #5
<%@ Control Language="C#" AutoEventWireup="false" CodeFile="selectPage.ascx.cs" Inherits="userControls_selectPage" %><div style="text-align: center;vertical-align: middle;width: 692px;"><asp:ImageButton ID="imgFirst" runat="server" OnClick="imgFirst_Click" /><asp:ImageButton ID="imgPrew" runat="server" OnClick="imgPrew_Click" />&nbsp;<asp:DropDownList ID="ddShowPage" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddShowPage_SelectedIndexChanged"></asp:DropDownList>&nbsp;<asp:ImageButton ID="imgNext" runat="server" OnClick="imgNext_Click" /><asp:ImageButton ID="imgLast" runat="server" OnClick="imgLast_Click" /></div>
<asp:Label ID="lblLink2" runat="server" Text="Label"></asp:Label>
Avatar billede trumf Nybegynder
28. januar 2006 - 23:11 #6
<%@ Page Language="C#" MasterPageFile="~/main/main.master" AutoEventWireup="true" CodeFile="vin.aspx.cs" Inherits="Vin_vin" Title="qe" %>
<%@ Register TagPrefix="uc" TagName="selectPage" Src="~/userControls/selectPage.ascx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="mainPage" Runat="Server">
<asp:Table ID="tblVin" runat="server" cellpadding="0" cellspacing="0">
<asp:TableRow>
    <asp:TableCell ColumnSpan="7" CssClass="headline">Vin<span class="broed">:: <asp:Label ID="lblSort" runat="server" Text=""></asp:Label></span></asp:TableCell>
</asp:TableRow>
<asp:TableRow>
    <asp:TableCell CssClass="columHeader"><a href="vin.aspx?sort=n">Navn</a></asp:TableCell>
    <asp:TableCell CssClass="columHeader"><a href="vin.aspx?sort=pd">Producent</a></asp:TableCell>
    <asp:TableCell CssClass="columHeader"><a href="vin.aspx?sort=p">Pris</a></asp:TableCell>
    <asp:TableCell CssClass="columHeader"><a href="vin.aspx?sort=i">Importør</a></asp:TableCell>
    <asp:TableCell CssClass="columHeader"><a href="vin.aspx?sort=l">Lagerstatus</a></asp:TableCell>
    <asp:TableCell CssClass="columHeader"><a href="vin.aspx?sort=r">Rettet</a></asp:TableCell>
    <asp:TableCell CssClass="columHeader2"><a href="vin.aspx?sort=ra">Af</a></asp:TableCell>
</asp:TableRow>
</asp:Table>
<div style="text-align: left;padding-top: 4px;" id="navButtons"><uc:selectPage id="ucSelectPage" runat="server" /></div>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</asp:Content>
Avatar billede Syska Mester
28. januar 2006 - 23:58 #7
Hvordan fylder du din "ddShowPage" op?

// ouT
Avatar billede trumf Nybegynder
29. januar 2006 - 00:12 #8
private void populateShowPage(int totalNumPages)
    {
        ddShowPage.Items.Clear();
        for (int i = 1; i <= totalNumPages; i++)
        {
            this.ddShowPage.Items.Add(i.ToString());
        }
    }
Avatar billede Syska Mester
29. januar 2006 - 00:44 #9
og hvor bliver den kaldt fra?

hvis den bliver kaldt fra load eventen på siden, så smidt den ind i:
if(!IsPostback)
{
// din kode til at fylde op her
}
Avatar billede trumf Nybegynder
29. januar 2006 - 00:58 #10
Jeg har også en funktion der sætter listen til den rigtige side når man klikker på knapperne. så den fjernede jeg lige ved et tilfælde i pageload og nu virker det. Den havde jeg ikke set hvis du ikke havde ledt mig på rette vej. Smider du et svar
Avatar billede Syska Mester
29. januar 2006 - 00:59 #11
Jeg smider et svar....

// ouT
Avatar billede Syska Mester
29. januar 2006 - 01:00 #12
Men hvad var svaret så?

Bare den funktion der fuckede det hele?

// ouT
Avatar billede trumf Nybegynder
29. januar 2006 - 01:04 #13
jeg har denne funktion
    private void setDropDownPageNumber(int currentPage)
    {
        if (ddShowPage.Items.Count > 0)
            this.ddShowPage.SelectedValue = currentPage.ToString();
    }
som kaldes når man klikker på knapperne til en side frem eller tilbage, så dropdownlisten altid står på den aktuelle side.

den funktion blev også kaldt i Page_Load, sammen med den anden du sagde jeg skulle flytte, men jeg fjernede den helt og så virker det :)

Tak for din tid. Det er sgu fedt det her, nu kan jeg komme i gang med det sjove, nu hvor der ikke er så meget der driller mere :)
Avatar billede Syska Mester
29. januar 2006 - 01:38 #14
heheh :-)

Ja, der er altid nogle ting der driller....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester