我的网页应该让我从下拉列表中选择一本书的标题,按下选择按钮,和文本框(即作者,年份,等级)应该改变根据所选书。 然而,当我从列表中选择第二本书,它总是返回到显示第一本书的细节下拉列表上,不管我选择,它总是只显示第一个记录。文本框,从下拉列表中选择后,在不改变
这里是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
LoadDetails();
}
private void LoadDetails()
{
SqlConnection conn;
SqlCommand comm;
SqlDataReader reader;
string connectionString =ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
conn = new SqlConnection(connectionString);
comm = new SqlCommand("SELECT BookId, Title FROM Books", conn);
try
{
conn.Open();
reader = comm.ExecuteReader();
ddlSearch.DataSource = reader;
ddlSearch.DataValueField = "BookId";
ddlSearch.DataTextField = "Title";
ddlSearch.DataBind();
reader.Close();
}
catch
{
lblError.Text = "Error loading books";
}
finally { conn.Close(); }
}
protected void btnSearch_Click(object sender, EventArgs e)
{
SqlConnection conn;
SqlCommand comm;
SqlDataReader reader;
string connectionString =ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
conn = new SqlConnection(connectionString);
comm = new SqlCommand("SELECT ISBN, Author, Title, Year, Category FROM Books Where [email protected]", conn);
comm.Parameters.Add("@BookId", System.Data.SqlDbType.Int);
comm.Parameters["@BookId"].Value = ddlSearch.SelectedItem.Value;
try
{
conn.Open();
reader = comm.ExecuteReader();
if (reader.Read())
{
txtIsbn.Text = reader["ISBN"].ToString();
txtAuthor.Text = reader["Author"].ToString();
txtTitle.Text = reader["Title"].ToString();
txtYear.Text = reader["Year"].ToString();
txtCat.Text = reader["Category"].ToString();
}
}
catch
{
lblError.Text = "Error laoding pages";
}
finally
{
conn.Close();
}
}
我试过的代码许多不同的变化,但它似乎没有奏效。 它可能是一个足够简单的修复,但我不能把它放在手指上。 任何帮助表示赞赏。谢谢!
认沽断点在你的代码。你会注意到'Click'事件在'Load'之前被触发。 – melancia
添加的IsPostBack条件,你的Page_Load –
感谢@现在AliBaghdadi..Works完美! – user3249809