4

asp.net に次のコードがあります。

<asp:dropdownlist id="ddlApp" runat="server" />
<asp:button id="btnSmt" runat="server" Text="Submit" />

コードビハインド:

    private void btnSmt_Click(object sender, System.EventArgs e)
    {
            lbl.Text = ddlApp.SelectedItem.Value;           
    }

ロジックは非常に単純です。dropdownlist の選択された値を取得し、lbl.text に渡します。

しかし、問題は私がどのように試しても、選択した値ではなくドロップダウンリストのリストの最初の値をテキストで表示することです。

そして、ボタンをクリックするたびにページが更新されることに気付きました。

助けてください。

ところで、私は次のイベントバインディングを持っています:

private void InitializeComponent()
        {    
            this.btnSmt.Click += new System.EventHandler(this.btnSmt_Click);
            this.Load += new System.EventHandler(this.Page_Load);
            this.ddlApp.SelectedIndexChanged +=new System.EventHandler(this.ddlApp_Change);

        }
4

2 に答える 2

8

でドロップダウンリストのバインディングを行う必要があります

if (!Page.IsPostBack)

それ以外の場合、すべてのポストバックでドロップダウン リストの項目が再構築されるため、新しいコレクションで現在選択されている項目のみが返されます。これが最初のコレクションです。

btnSmt_Clickまた、ボタンの が欠落しているように見えますが、おそらく別の場所に設定しています...

于 2012-10-11T07:23:41.297 に答える
0

最初にこれをデバッグしましたか??? C#コードが正しいようです。

これを変更してみてください:

<asp:button id="btnSmt" runat="server" Text="Submit" /> 

<asp:button id="btnSmt" runat="server" Text="Submit" OnClick="btnSmt_Click" /> 

これが本当にあなたのコードである場合、クリック イベントは決してキャッチされないため、C# コードにブレークポイントを配置すると、アクションがトリガーされないことがわかります。

とにかく、それが役立つことを願っています

于 2012-10-11T07:23:28.370 に答える