我试图让gridview在页面加载时自动选择第一行数据。但是,在gridview中,它显示第一行正在突出显示
但我的文本框中没有显示任何数据。仅当我再次单击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";
}
但是,当页面加载时第一行已被选中时,可能导致数据无法显示。
答案 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);
}
}