2

asp.netページにドロップダウンリストコントロールとボタンがあります。ドロップダウンリストはメソッドから取り込まれます。ボタンをクリックした後、最初のアイテム以外のアイテムを選択すると、DDL で選択したアイテムが失われ、最初のアイテムが選択され、ボタン クリック イベントでのみ最初のアイテムの値が取得されます。どうすれば問題を解決できますか?

 <asp:DropDownList ID="userDropDown" runat="server" DataTextField="CustomerName"  DataValueField="CustomerId">
</asp:DropDownList>

protected void Button1_Click(object sender, EventArgs e)
{
if(!page.isPostBack)
{
    userDropDown.DataSource = CC.GetCustomers();
    userDropDown.DataBind();
}
}
4

3 に答える 3

2

userDropDown条件なしでPage_Loadイベントに バインドする必要があると思いますif (!IsPostBack)

dropdown binding part内部の if (!IsPostBack) 状態に入れてください、そうすればうまくいくはずです

于 2013-08-23T15:47:43.417 に答える
2

if(!ispostback){} 内でドロップダウンリストの値をバインドするか、ボタンを送信した後、更新されたフィールドを dropdownlistname.text にバインドしてください

于 2013-08-25T17:18:08.350 に答える
0

リクエストに応じて DropdownList をデータソースにバインドしているようです。Page.IsPostBack代わりに、以下のように false の場合にのみバインドします。(必要ないかもしれませんObjectDataSource)

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
   {
     //bind your datasource here (something like below)
     userDropDown.DataSource = GetCustomers();
     userDropDown.DataBind();
   }
}

DataBind() メソッドが呼び出されるとすぐに、そのオブジェクトのポストされたデータが失われ、デフォルトで FirstItem が選択されます。

于 2013-08-23T15:47:56.870 に答える