Comment lier répéteur ItemDataBound, à la mise à jour sur dropdownlist SelectedIndexChanged

Im une recrue de ASP.Net et bloquée depuis ce pendant un certain temps.

Chaque fois que l'index de ma liste déroulante change je veux remplir mon répéteur avec les objets.

Cela fonctionne bien, mais quand im la sélection d'une valeur dans ma liste déroulante qui dosent contenir tous les objets les objets anciens depuis le dernier appel est toujours là, je veux qu'ils disparaissent.

J'ai essayé d'effacer les éléments de la répétition à l'aide de la source de données=null et puis faire un Databind de nouveau, mais qui dosent travail.

Je pense qu'il a avec l'événement ItemDataBound sur mon répéteur.
Le ItemDatabound n'est pas appelé lorsque je sélectionne une valeur dans la dropsdownlist qui dosent contenir tous les objets.

ItemDataBound CODE:

protected void rptStudentQuestion_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Label lblAnswer = e.Item.FindControl("lblAnswer") as Label;
        TextBox tbxAnswer = e.Item.FindControl("tbxAnswer") as TextBox;
        Button btnSend = e.Item.FindControl("btnSend") as Button;
        if (lblAnswer.Text == "" || lblAnswer == null)
        {
            lblAnswer.Visible = false;
            lblAnswer.Enabled = false;
            tbxAnswer.Visible = true;
            tbxAnswer.Enabled = true;
            btnSend.Enabled = true;
            btnSend.Visible = true;
        }
        else
        {
            lblAnswer.Visible = true;
            lblAnswer.Enabled = true;
            tbxAnswer.Visible = false;
            tbxAnswer.Enabled = false;
            btnSend.Enabled = false;
            btnSend.Visible = false;

        }
    }
}

OnSelectedIndexChanged CODE:

protected void DrpdwnLectureName_SelectedIndexChanged(object sender, EventArgs e)
{
    string SelectedLecture = DrpdwnLectureName.SelectedValue;
    string user = Server.HtmlEncode(Context.User.Identity.Name).ToString();
    using (var client = new WCFReference.SRSServiceClient())
    {
        var LectureList = client.GetTeacherLecture(user);
        foreach (var item in LectureList)
        {
            if (item.LectureName == DrpdwnLectureName.SelectedValue)
            {
                var list = client.GetStudentQuestions(item.LectureID, user);
                rptStudentQuestion.DataSource = list;
                rptStudentQuestion.DataBind();
            }
        }               

    }

}

CODE de balisage:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:DropDownList ID="DrpdwnLectureName" AutoPostBack="True" runat="server" OnSelectedIndexChanged="DrpdwnLectureName_SelectedIndexChanged"></asp:DropDownList>
            <asp:Panel ID="PrintPanel" runat="server">
                <asp:Label ID="Label1" runat="server" Text="Gör en .pdf på besvarade frågor"></asp:Label>
                <asp:Button ID="btnDoPdf" runat="server" Text="Button" OnClick="btnDoPdf_Click" />
            </asp:Panel>
            <asp:Repeater ID="rptStudentQuestion" runat="server" OnItemCommand="rptStudentQuestion_ItemCommand" OnItemDataBound="rptStudentQuestion_ItemDataBound">
                <ItemTemplate>
                    <asp:Label ID="lblQuestion" runat="server" Text='<%# Eval("StudentQuestionQuestion") %>'></asp:Label>
                    <br />
                    <asp:TextBox ID="tbxAnswer" runat="server" Visible="false"></asp:TextBox>
                    <asp:Button ID="btnSend" CommandName="SendAnswer" runat="server" Text="Skicka svar" CommandArgument='<%# Eval("StudentQuestionID") %>' />
                    <br />
                    <asp:Label ID="lblAnswer" runat="server" Text='<%# Eval("StudentQuestionAnswer") %>' Visible="false"></asp:Label>
                    <br />
                </ItemTemplate>
            </asp:Repeater>
        </ContentTemplate>
    </asp:UpdatePanel>

Code mis à jour comme Demandé(Extrait de DrpdwnLectureName_SelectedIndexChanged)

if (item.LectureName == DrpdwnLectureName.SelectedValue)
{
    var list = client.GetStudentQuestions(item.LectureID, user);
    if (list.Count() > 0)
    {
        rptStudentQuestion.Visible = true;
        rptStudentQuestion.DataSource = list;
        rptStudentQuestion.DataBind();
    }
    else
    {
        rptStudentQuestion.Visible = false; //In debug it preforms this, but nothing happens.                            
    }
}
cacher votre relais quand u ont aucune valeur dans la liste déroulante
Je n'avais pas pensé à ça. Mais qui ne fonctionnent pas non plus. Peut-être que j'ai besoin d'une publication sur "les modifications visibles" ?
u peut montrer votre code mis à jour
La mise à jour extrait de code est présent dans le premier post.
Hm. J'ai essayé de supprimer l'updatepanel. Et maintenant, ses œuvres, mais bien sûr avec les publications. Je veux éviter de ceux-ci. mais alors le code ci-dessus dosent travail.. Et je ne sais pas vraiment pourquoi il dosent travail

OriginalL'auteur J.Olsson | 2013-04-25