0

データベースで検索すると、リンクボタンを使用して Gridivew に名と姓のみが表示されます。

ここに画像の説明を入力

最初の Image(1) では、名のみを検索し、名と姓を表示します。2 番目の Image(2) では、最初の文字のみを検索して表示しますが、5 回表示するのはなぜですか? 一度だけしたいですか?

これが私のコードです

  private void GetEmployee()
    {
        var db = new knowitCVdbEntities();
        var employee = (from p in db.EMPLOYEES
                        where
                            p.firstname.Contains(TextBoxSearch.Text) ||
                            p.lastname.Contains(TextBoxSearch.Text) ||
                            p.position.Contains(TextBoxSearch.Text)
                        select p).ToList();

        foreach (var vEmp in employee)
        {
            if (vEmp != null)
            {
                HiddenFieldID.Value = vEmp.employee_id.ToString();

                        if (Session["DataTableSearch"] != null)
                        {
                            _dt = (DataTable)Session["DataTableSearch"];
                        }
                        else
                        {
                            _dt.Columns.Add("Firstname");
                            _dt.Columns.Add("employeeId");

                        }
                        //_dt.Rows.Clear();
                        DataRow dr = _dt.NewRow();
                        dr["Firstname"] = vEmp.firstname+" "+vEmp.lastname;
                         dr["employeeId"] = vEmp.employee_id;

                        _dt.Rows.Add(dr);
                        Session["DataTableSearch"] = _dt;
                        GridViewDisplayName.DataSource = _dt;
                        GridViewDisplayName.DataBind();
                    }
            }

    }
4

2 に答える 2

0

foreach (var vEmp in employee)これを行の直前に挿入します。

_dt.Clear();

したがって、コードは次のようになります。

private void GetEmployee()
{
    var db = new knowitCVdbEntities();
    var employee = (from p in db.EMPLOYEES
                    where
                        p.firstname.Contains(TextBoxSearch.Text) ||
                        p.lastname.Contains(TextBoxSearch.Text) ||
                        p.position.Contains(TextBoxSearch.Text)
                    select p).ToList();

    _dt.Clear();

    foreach (var vEmp in employee)
    {
        if (vEmp != null)
        {
            HiddenFieldID.Value = vEmp.employee_id.ToString();

                    if (Session["DataTableSearch"] != null)
                    {
                        _dt = (DataTable)Session["DataTableSearch"];
                    }
                    else
                    {
                        _dt.Columns.Add("Firstname");
                        _dt.Columns.Add("employeeId");

                    }
                    //_dt.Rows.Clear();
                    DataRow dr = _dt.NewRow();
                    dr["Firstname"] = vEmp.firstname+" "+vEmp.lastname;
                     dr["employeeId"] = vEmp.employee_id;

                    _dt.Rows.Add(dr);
                    Session["DataTableSearch"] = _dt;
                    GridViewDisplayName.DataSource = _dt;
                    GridViewDisplayName.DataBind();
                }
        }

}
于 2013-05-20T15:24:10.027 に答える