次のコードがあります。これは、いくつかのテキストフィールドとドロップダウンに基づいて、データベースにレコードを挿入するだけです。ドロップダウンは、ページ読み込みイベントでバインドされます。
protected void btnAdd_Click(object sender, EventArgs e)
{
try
{
Personeel p = new Personeel();
p.achternaam = txtNaam.Text;
p.naam = txtVoornaam.Text;
p.fk_afdeling_id = Convert.ToInt16(cmbAfdeling.SelectedValue);
BLLpersoneel BLLp = new BLLpersoneel();
BLLp.insert(p);
lblFeedback.Text = "Done and done!";
rptPersoneel.DataBind();
}
catch (Exception err)
{
lblFeedback.Text = err.Message;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if(Page.IsPostBack == false)
{
BLLafdeling BLLa = new BLLafdeling();
cmbAfdeling.DataSource = BLLa.selectAll();
cmbAfdeling.DataTextField = "naam";
cmbAfdeling.DataValueField = "afdeling_id";
cmbAfdeling.DataBind();
}
}
私の質問はIsPostBackについてです。最初の読み込み時に、ページにはPostBackがないため、データをドロップダウン「cmbAfdeling」にバインドします。
次に、フォームを送信するときにポストバックがあるため、ifステートメント内のコードに到達しません。私にとって、それはASP.NETがデータをコンボボックスにバインドしないことを意味します。
ただし、データは送信後も存在します(したがって、ポストバックがあります)。
これはどのように説明されますか?