0

ページの読み込み時にグリッドビューがデータの最初の行を自動選択できるようにしようとしています。ただし、グリッドビューでは、最初の行が強調表示されていることが示されています

ここに画像の説明を入力

テキストボックスにデータが表示されていません。データは、グリッドビューの選択ボタンをもう一度クリックしたときにのみ表示されます。

これは、ページの読み込みにグリッドビューの自動選択行を追加した方法です

protected void Page_Load(object sender, EventArgs e)
    {          
        if (!IsPostBack)
            {
                 gvnric.SelectedIndex = 0;
            }
        }

これは、グリッドビューからテキストボックスにデータを取得する方法です

protected void gvnric_SelectedIndexChanged(object sender, EventArgs e)
    {
        Session["nric"] = gvnric.SelectedRow.Cells[1].Text;


        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        con.Open();
        SqlCommand cm = new SqlCommand("Select fullname, contact, address, email From MemberAccount Where nric = '" + Session["nric"] + "'", con);
        SqlDataReader dr;
        dr = cm.ExecuteReader();
        if (dr.Read())
        {
            txtFullName.Text = dr["fullname"].ToString();
            txtAddress.Text = dr["contact"].ToString();
            txtContact.Text = dr["address"].ToString();
            txtEmail.Text = dr["email"].ToString();
        }
        con.Close();

        Image1.Attributes["src"] = "MemberNricCard.aspx?";
        Image1.Attributes["height"] = "200";
        Image1.Attributes["width"] = "200";
    }

しかし、ページの読み込み時に最初の行が既に選択されている場合、データが表示されない可能性があります。

4

2 に答える 2

0

以下のようにコードをリファクタリングします。

ページロード

if (!IsPostBack)
{
     gvnric.SelectedIndex = 0;
     LoadFormFields();
}

gvnric_SelectedIndexChanged

protected void gvnric_SelectedIndexChanged(object sender, EventArgs e)
{
    LoadFormFields();
}

LoadFormFields持っているもので作成しますgvnric_SelectedIndexChanged

于 2013-09-04T04:03:45.277 に答える