ASP.NET Repeater - как обновить данные при нажатии кнопки - PullRequest
0 голосов
/ 16 декабря 2010

Я видел похожие посты, но некоторые не были ясны.

Вот голова повторителя:

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

У меня есть кнопка:

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

иУ меня есть данные вставки / обновления кода в базе данных, а затем я установил:

 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;

Но когда страница готова, данные не обновляются.Чего мне не хватает?

ОБНОВЛЕНИЕ: Это 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();
}

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Вы связываете ретранслятор с предыдущим заполненным дататем.Заполните таблицу последними данными и свяжите ее с повторителем, нажав кнопку Сохранить.

0 голосов
/ 16 декабря 2010

попробуйте другой подход при добавлении значений параметров, подобных этому

cmd.Parameters.Add("@originalID", SqlDbType.VarChar);
cmd.Parameters["@originalID"].Value = hfID.Value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...