TextBox innerhalb eines repeater-Steuerelements

Habe ich ein repeater-Steuerelement mit einem ItemTemplate enthält zwei Textfelder. Ich Schleife durch die Repeater und legen Sie die Daten in meiner Datenbank. Das problem ist, dass das erste Textfeld ist das nur eine eingefügt.

Ich Binde das erste Textfeld in der Liste in der PageLoad Methode.

<asp:Repeater ID="questionRepeater" ViewStateMode="Enabled" runat="server">
    <ItemTemplate>
        <tr class="">
            <td>
                <div class="control-group">
                    <label class="control-label">Queston  : </label>

                    <div class="controls">
                        <asp:TextBox runat="server" ID="txtQ" Text='<%#Eval("Question") %>' ReadOnly="true" CssClass="span8">
                        </asp:TextBox>
                    </div>
                </div>
            </td>
        </tr>
        <tr class="info">
            <td>
                <div class="control-group">
                    <label class="control-label">Answer : </label>
                    <div class="controls">
                        <asp:TextBox runat="server" ID="txtAns"
                            Height="150" TextMode="MultiLine" CssClass="span8"></asp:TextBox>

                    </div>
                </div>
            </td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

Mein code hinter:

protected void btnSave_Click(object sender, EventArgs e)
{
    Sessions session = new Sessions();
    SessionQuestion sessionQuestions = new SessionQuestion();

    session.ClientId = id;
    session.DateTime = DateTime.Now;
    session.Report = txtReport.Text;
    session.Notes = string.Empty;
    session.IsActive = IsActive.Active;

    int sessionId = SessionBLL.Insert(session);

    foreach (Control item in questionRepeater.Items)
    {
        sessionQuestions.SessionId = sessionId;


        TextBox txtQ = (TextBox)item.FindControl("txtQ");
        sessionQuestions.Answer = "";
        sessionQuestions.Question = txtQ.Text;

        var txtAns = (TextBox)item.FindControl("txtAns") as TextBox;
        if (txtAns != null)
        {
            sessionQuestions.Answer = "";
            sessionQuestions.Answer = txtAns.Text; 
        }


        Thread.Sleep(150);
        if (txtAns != null && txtQ.Text != null)
        {
            SessionQuestionBLL.Insert(sessionQuestions);
        }
    }

    string message = "";

    Response.Redirect("/Sessions/Sessions.aspx?message=" + message);
}

InformationsquelleAutor ahmgeek | 2013-08-25

Schreibe einen Kommentar