2
protected void Page_Load(object sender, EventArgs e)
{



        bindbranches();
        bindbranches1();

}
public void bindbranches()
{
    DataTable dtbranch = new DataTable();
    dtbranch = objsupplyBAL.getbrnch();

    ddlbranch.DataSource = dtbranch;
    ddlbranch.DataBind();
    ddlbranch.Items.Add(new ListItem("--select--", "0"));
    ddlbranch.SelectedIndex = ddlbranch.Items.Count - 1;

}
public void bindbranches1()
{
    DataTable dt = new DataTable();
    dt = objsupplyBAL.getbrnch();

    ddlbranch1.DataSource = dt;
    ddlbranch1.DataBind();
    ddlbranch1.Items.Add(new ListItem("--select--", "0"));
    ddlbranch1.SelectedIndex = ddlbranch1.Items.Count - 1;

}

私のドロップダウンリストは更新しないとバインドされません.1つのドロップダウンリストを選択すると、別のドロップダウンリストが更新されます. コードに追加する必要があるもの。誰でも言えますか...

4

3 に答える 3

3
protected void Page_Load(object sender, EventArgs e)
{
  if(!IsPostBack)
 {

    bindbranches();
    bindbranches1();
  }
}

これを追加すると...正常に動作します...最初にこれを試してください...

于 2013-10-03T07:32:57.450 に答える
1

発生している理由は、ページがポストバックするたびにコードを実行しているためです。次のことを試して、(最初のページの読み込み時に) アイテムを 1 回だけ入力してください。

protected void Page_Load(object sender, EventArgs e) {
    if (!this.IsPostBack) {
        bindbranches();
        bindbranches1();
    }
}

Page.Initまたは、イベントを処理してこのコードを実行することもできます。これにより、ページが最初に読み込まれたときにドロップダウンが変更され、その後のポストバック全体で値が保持されます。

protected void Page_Init(object sender, EventArgs e) {
    bindbranches();
    bindbranches1();
}

最初の項目が選択されたときにのみ 2 番目のドロップダウンを更新する場合は、次の解決策を試してください。

protected void ddlbranch_SelectedIndexChanged(object sender, EventArgs e) {
    bindbranches1();
}

そしてddlbranch_SelectedIndexChanged、ddlbranch コントロールの選択したインデックス変更イベントにバインドします。これは、ページが最初に読み込まれたとき、およびユーザーが ddlbranch ドロップダウンから項目を選択したときにのみコードを実行します。

于 2013-10-03T07:34:27.803 に答える