Поместите строки в gridView один за другим каждый раз, когда на asp.net запускается событие click - PullRequest
2 голосов
/ 28 марта 2019

Я хочу добавить данные (или строку) в сетку всякий раз, когда нажимаю на кнопку.

Таким образом, код позади кнопки подобен тому, когда пользователь нажимает на кнопку, параметризует хранимую процедуру, вызываемую, которая получает данные из SQL Server. Поэтому каждый раз он получит только одну запись.

Проблема в том, что когда пользователь нажимает кнопку, он успешно получает первую строку, а затем снова, когда пользователь нажимает кнопку, он переопределяет данные, присутствующие в строке [0].

Я хочу всякий раз, когда пользователь нажимает в другой раз. данные поступают в следующую строку, а данные, представленные в предыдущей строке, остаются прежними.

Метод нажатия кнопки:

protected void Button5_Click(object sender, EventArgs e)
{
    getLotteryApplications();
}

private void getLotteryApplications()
{
        try
        {
            int serialNumber = 0, preference = 0;

            if (SerialNum.Text != "0")
            {
                serialNumber = Int32.Parse(SerialNum.Text.ToString());
            }

            if (ddlPreferenceLottery.SelectedValue != "0")
            {
                preference = Int32.Parse(ddlPreferenceLottery.SelectedValue.ToString());
            }

            DataTable dt = DL_School_Detail.getLotteryApplications(serialNumber, preference);
            selectedStudentView.DataSource = dt;
            selectedStudentView.DataBind();
        }
        catch (Exception ex)
        {
        }
}

Класс вызова:

public static DataTable getLotteryApplications(int serial,int preference)
{
    DataTable dt = new DataTable();

    try
    {
        using (SqlConnection con = new SqlConnection(Connect.getConnection()))
        {
            using (SqlCommand cmd = new SqlCommand("[dbo].[GetLotterySelectedCandidates]", con))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@serialNumber", serial);
                cmd.Parameters.AddWithValue("@preference", preference);

                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {
                    using (DataSet ds = new DataSet())
                    {
                        da.Fill(ds);
                        dt = ds.Tables[0];
                    }
                }
            }
        }
    }
    catch (Exception ex)
    {
    }

    return dt;
}

1 Ответ

0 голосов
/ 31 марта 2019
private void AddNewRowToGrid()
    {
           try
          {
            int serialNumber = 0, preference = 0;
            if (SerialNum.Text != "0")
            {
                serialNumber = Int32.Parse(SerialNum.Text.ToString());
            }
            if (ddlPreferenceLottery.SelectedValue != "0")
            {
                preference = Int32.Parse(ddlPreferenceLottery.SelectedValue.ToString());
            }
            DataTable griddt;
            DataTable griddt2;
            if (ViewState["Row"] != null)
            {
                griddt = (DataTable)(ViewState["Row"]);
                DataRow dr = null;
                if (griddt.Rows.Count > 0)
                {
                    griddt2 = DL_School_Detail.getLotteryApplications(serialNumber, preference);
                    griddt.Merge(griddt2, true, MissingSchemaAction.Ignore);
                    if (griddt.Rows.Count > 0)
                    {
                        ViewState["Row"] = griddt;
                        ContentPlaceHolder1_selectedStudentView.DataSource = griddt;

                        ContentPlaceHolder1_selectedStudentView.DataBind();
                    }
                    else
                    {
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('कृपया सही सीरियल नंबर और  प्राथमिकता चुने !')", true);
                    }
                }

            }
            else
            {
                DataTable dt = DL_School_Detail.getLotteryApplications(serialNumber, preference);
                //dt.Merge(griddt, true, MissingSchemaAction.Ignore);
                if (dt.Rows.Count > 0)
                {
                    ViewState["Row"] = dt;
                    ContentPlaceHolder1_selectedStudentView.DataSource = ViewState["Row"];

                    ContentPlaceHolder1_selectedStudentView.DataBind();
                }
                else
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('कृपया सही सीरियल नंबर और  प्राथमिकता चुने !')", true);
                }
            }
        }
        catch (Exception ex)
        {

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...