0

ドロップダウンリストから特定の論文の詳細をロードするという、私が望む結果が得られないので、私のコードで私を助けてくれるかどうか尋ねたい.

現在、ページが読み込まれると、選択したアイテムの詳細が読み込まれます。しかし、ドロップダウン リストから別の項目を選択しようとすると、対応する詳細が表示されず、代わりに前の項目が残ります。

ドロップダウン リストのプロパティで、autopostback も yes に設定して、選択したアイテムの対応する詳細を自動的にロードするようにします。

以下のコードを参照してください

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GetPaper();
        GetInk();

        GetPaperDetails(ddlPaperName.SelectedItem.Value);
        //pnlPrinting.Visible = true;
    }
}
protected void btnCompute_Click(object sender, EventArgs e)
{

}
protected void btnCancel_Click(object sender, EventArgs e)
{

}

private void GetPaper()
{
    con.Open();
    SqlCommand com = new SqlCommand();
    com.Connection = con;
    com.CommandType = CommandType.Text;
    com.CommandText =
        "SELECT * FROM Papers";

    SqlDataReader data = com.ExecuteReader();

    ddlPaperName.DataSource = data;
    ddlPaperName.DataValueField = "PaperID";
    ddlPaperName.DataTextField = "PaperName";
    ddlPaperName.DataBind();

    data.Close();
    con.Close();     
}

private void GetPaperDetails(string paper)
{
    con.Open();
    SqlCommand com = new SqlCommand();
    com.Connection = con;
    com.CommandType = CommandType.Text;
    com.CommandText =
        "SELECT * FROM Papers WHERE PaperID=" + paper;

    SqlDataReader data = com.ExecuteReader();

    while (data.Read())
    {
        lblPaperPrice.Text = data["PaperPrice"].ToString();
        lblDescription.Text = data["PaperDescription"].ToString();
        lblSpecification.Text = data["PaperSpecification"].ToString();
        imgPaper.ImageUrl = "../" + data["PaperImage"].ToString();
    }
    data.Close();
    con.Close();
}


private void GetInk()
{
    con.Open();
    SqlCommand com = new SqlCommand();
    com.Connection = con;
    com.CommandType = CommandType.Text;
    com.CommandText =
        "SELECT * FROM Inks";

    SqlDataReader data = com.ExecuteReader();

    ddlPaperName.DataSource = data;
    ddlPaperName.DataValueField = "InkID";
    ddlPaperName.DataTextField = "InkName";
    ddlPaperName.DataBind();

    while (data.Read())
    {
        lblInkPrice.Text = data["InkPrice"].ToString();
    }
    data.Close();
    con.Close();
}
protected void ddlPaperName_SelectedIndexChanged(object sender, EventArgs e)
{
        GetPaperDetails(ddlPaperName.SelectedItem.Value);
}

こちらからのフィードバックをお待ちしております。ありがとう!

4

2 に答える 2

0

ドロップダウン リストの AutoPostBack プロパティを true に設定します。

于 2013-10-23T12:12:14.660 に答える