[英]Data not displaying out despite auto-selecting gridview row
I'm trying to let the gridview auto-select the first row of data upon page load. 我试图让gridview在页面加载时自动选择数据的第一行。 However, in the gridview, it shows that the first row is being highlighted
但是,在gridview中,它表明第一行被突出显示
but no data is being displayed in my textbox. 但我的文本框中没有显示任何数据。 The data only appears when i click the select button in my gridview again.
仅当我再次单击gridview中的选择按钮时,数据才会出现。
This is how i added the auto-select gridview row in my page load 这就是我在页面加载中添加自动选择gridview行的方式
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gvnric.SelectedIndex = 0;
}
}
This is how i get my data from my gridview to my textbox 这是我将数据从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";
}
But what could possibly caused the data not to be displayed when the first row already being selected upon page load. 但是,当页面加载时已经选择了第一行时,可能导致数据不显示的原因。
I would Re Factor the code as below : 我将分解代码如下:
PageLoad 页面加载
if (!IsPostBack)
{
gvnric.SelectedIndex = 0;
LoadFormFields();
}
gvnric_SelectedIndexChanged gvnric_SelectedIndexChanged
protected void gvnric_SelectedIndexChanged(object sender, EventArgs e)
{
LoadFormFields();
}
and create LoadFormFields
with what you have in gvnric_SelectedIndexChanged
并使用
LoadFormFields
中的内容创建gvnric_SelectedIndexChanged
You can just call your gridview code in the page load 您可以只在页面加载中调用gridview代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gvnric.SelectedIndex = 0;
gvnric_SelectedIndexChanged(this, EventArgs.Empty);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.