尽管自动选择gridview行,但数据不显示

时间:2013-09-04 03:36:23

标签: c# asp.net gridview

我试图让gridview在页面加载时自动选择第一行数据。但是,在gridview中,它显示第一行正在突出显示

enter image description here

但我的文本框中没有显示任何数据。仅当我再次单击gridview中的选择按钮时,才会显示数据。

这就是我在页面加载中添加自动选择gridview行的方法

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

这是我从gridview获取数据到文本框的方式

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";
    }

但是,当页面加载时第一行已被选中时,可能导致数据无法显示。

2 个答案:

答案 0 :(得分:0)

我会将代码重新计算如下:

<强> pageLoad的

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

<强> gvnric_SelectedIndexChanged

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

并使用LoadFormFields

中的内容创建gvnric_SelectedIndexChanged

答案 1 :(得分:0)

您只需在页面加载中调用gridview代码

即可
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            {

                gvnric.SelectedIndex = 0;
                gvnric_SelectedIndexChanged(this, EventArgs.Empty);
            }
        }