0

gridview 内の linkbutton がクリックされたときに Person オブジェクトにデータを入力しようとしています。次に、関連するデータを取得し、モーダル内のテキスト ボックスに表示します。データをフェッチして Person オブジェクトに渡すことはできますが、モーダル コントロールにデータを入力すると、Person オブジェクトはすべてのプロパティで null を返します。

Person objPerson = new Person() を呼び出さずに、Person オブジェクトの値をテキスト ボックス コントロールに渡す方法はありますか?

前もって感謝します。

実在物:

public class Person
{
    public int PersonID { get; set; }
    public string Firstname { get; set; }
    public string Lastname { get; set; }
}

データ層:

public DataTable SelectQueryProc(String _storedProc, SqlParameter[] sqlParameter)
{
    DataTable t = new DataTable();

    try
    {
        using (SqlConnection sqlConnection = new SqlConnection(CommonEntity.ConnectionString))
        {
            sqlConnection.Open();
            using (SqlDataAdapter adapter = new SqlDataAdapter(_storedProc, sqlConnection))
            {
                adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
                adapter.SelectCommand.Parameters.AddRange(sqlParameter);
                adapter.Fill(t);
            }
        }
    }
    catch (SqlException e)
    {
        throw new SystemException(e.ToString());
    }
    finally
    {

    }
    return t;
}

public List<Person>GetPersonSingleByPersonID(string personID)
{
    List<Person> objPerson = new List<Person>();
    DataTable dt = new DataTable();

    SqlParameter[] sqlParam = new SqlParameter[1];
    sqlParam[0] = new SqlParameter("@PersonID", SqlDbType.VarChar);
    sqlParam[0].Value = personID;

    CommonDAL commonDAL = new CommonDAL();
    dt = commonDAL.SelectQueryProc("GetPersonSingleByPersonID", sqlParam);

    foreach (DataRow dr in dt.Rows)
    {
        objPerson.Add(new Person()
        {
            PersonID = dr["PersonID"].ToString(),
            Firstname = dr["Firstname"].ToString(),
            Lastname = dr["Lastname"].ToString()            
        });
    }
    return objPerson;
}

ビジネスロジック層:

public List<Person> GetPersonSingleByPersonID(string personID)
{
    PersonDAL objPersonDAL = new PersonDAL();
    return objPersonDAL.GetPersonSingleByPersonID(companyID);
}

プレゼンテーション層:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    switch (e.CommandName)
    {
        case "click":
            {
                // Populate Person Details                        
                PersonBL objPersonBL = new PersonBL();
                objPersonBL.GetPersonSingleByPersonID(e.CommandArgument.ToString());

                Person objPerson = new Person();
                txtPersonID.Text = objPerson.PersonID;
                txtFirstname.Text = objPerson.Firstname;
                txtLastname.Text = objPerson.Lastname;
                break;
            }
        default:
        break;
    }
}
4

2 に答える 2