Frage

Ich habe einen Dropdownlist auf einer Repeater-Steuerung, sowie eine Taste.

Die Taste ist deaktiviert, bis ein gültiger Punkt auf der Dropdownlist ausgewählt ist, wenn ich die Taste aktiviert werden soll. Leider scheinen kann ich nicht, um es zu erhalten.

Gefunden den Repeater durch: (.Als () Methode ist eine Erweiterung Methode für (Objekt als T), macht einfach leichte Gießen)

sender.As<Control>().NamingContainer.Parent.As<Repeater>()

Doch die Repeater ich zurück hilft mir nicht als Findcontrol (string name) Funktion wird nichts zurückkehr -. Und zeigt nichts Brauchbares im Überwachungsfenster

Also, wie kann ich eine Geschwisterregelung (ein Image in diesem Fall) auf einem Repeater von einem Ereignisse eines anderen Elements auf dem Repeater (DropDown_SelectedIndexChanged in diesem Fall)?

Bearbeiten

ich endlich geklappt

sender.As<ImageButton>().NamingContainer.As<RepeaterItem>().FindControl("ControlName")
War es hilfreich?

Lösung

Ich glaube, ich habe die Antwort auf Ihre Frage:

1.-I erstellen Repeater mit der Dropdownlist und Taste, um die Tests zu tun:

 <asp:Repeater ID="rp" runat="server">
   <ItemTemplate>
        <asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
        <asp:ListItem>1</asp:ListItem>
        <asp:ListItem>2</asp:ListItem>
        <asp:ListItem>3</asp:ListItem>
        <asp:ListItem>4</asp:ListItem>
        <asp:ListItem>5</asp:ListItem>
        <asp:ListItem>6</asp:ListItem>

        </asp:DropDownList>
        <asp:ImageButton ID="Button1" runat="server" Enabled="False" />
        </ItemTemplate>
        </asp:Repeater>

I Databind den Repeater.

2.-I schaffen das Verfahren DropDownList1 SelectedIndexChanged:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList control = (DropDownList)sender;

        RepeaterItem rpItem = control.NamingContainer as RepeaterItem;
        if (rpItem != null)
        {
            ImageButton btn = ((ImageButton)rpItem.FindControl("Button1"));
            btn.Enabled = true;

        }

    }

Die Art und Weise, es zu tun ist, um die Steuerung zu fragen, wer seine Eltern sind, ist zu sagen, dass die RepeaterItem, oder Sie können NamingContainer verwenden (wie ich schließlich geschrieben habe) und dort können Sie über jede Kontrolle stellen, die im Innern ist .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top