Frage

Ich sah Ähnliche Beiträge, aber einige waren nicht klar.

Hier ist der Repeater Kopf:

<asp:Repeater ID="rptGetAll" OnItemCommand="Buttons_OnItemCommand" runat="server" OnLoad="rptGetAll_Load">

Ich habe eine Schaltfläche:

 <asp:Button ID="Submit" runat="server" OnClick="Submit_Click" Text="Save" />

, und ich habe den Code-behind-insert / update Daten in der Datenbank und dann setze ich:

 using (SqlConnection con = new SqlConnection(conString))
            {
                con.Open();
                using (SqlCommand cmd = new SqlCommand("administratorUpdate", con))
                {
                    cmd.Parameters.Add("@originalID", SqlDbType.VarChar).Value = hfID.Value;
                    cmd.Parameters.Add("@firstName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtFirstName.Text, 2);
                    cmd.Parameters.Add("@lastName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtLastName.Text, 2);
                    cmd.Parameters.Add("@userName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtUserName.Text, 1);
                    cmd.Parameters.Add("@emailAddress", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtEmailAddress.Text, 2);
                    cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtPassword.Text, 1);
                    cmd.Parameters.Add("@isActive", SqlDbType.VarChar).Value = cbIsActive.Checked;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.ExecuteNonQuery();
                }
                con.Close();
            }
            rptGetAll.DataSource = dt;
            rptGetAll.DataBind();

            //Output Success Message
            Label lblErrorMessage = (Label)Master.FindControl("lblErrorMessage");
            new MyGlobals().DisplayUserMessage("success", "Administrator Updated!", lblErrorMessage);
            AdminForm.Visible = false;

Aber wenn die Seite der Daten erfolgt nicht aktualisiert. Was bin ich?

UPDATE: Dies ist die Repeater_Load:

 protected void rptGetAll_Load(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    using (SqlConnection con = new SqlConnection(conString))
    {
        using (SqlCommand cmd = new SqlCommand("administratorGetAll", con))
        {
            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
            {
                da.Fill(dt);
            }
        }
    }
    rptGetAll.DataSource = dt;
    rptGetAll.DataBind();
}
War es hilfreich?

Lösung

You are binding the repeater with previous filled datatable dt. Refill the datatable with the latest data and bind it to repeater on the Save button click.

Andere Tipps

try different approach when adding your parameter values like this

cmd.Parameters.Add("@originalID", SqlDbType.VarChar);
cmd.Parameters["@originalID"].Value = hfID.Value;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top