10

本当に明らかな何かが欠けていると感じています.DropDownListの選択された値をキャプチャできません。値はリストの最初の項目を renaubs します。DropListList autopostback プロパティを true に設定まし。以下に貼り付けた SelectedIndexChangedEvent があります。これはマスターページにはありません。

protected void ddlRestCity_SelectedIndexChanged(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        r_city = ddlRestCity.SelectedValue.ToString();
    }
}

以下は DropDownList コントロールです。

<asp:DropDownList ID="ddlRestCity" runat="server" 
        Width="100px" AutoPostBack="True" 
        onselectedindexchanged="ddlRestCity_SelectedIndexChanged">
</asp:DropDownList>

ご協力ありがとうございます。

4

3 に答える 3

12

私の考えでは、あなたはおそらくポストバックにリストを再入力していて、それが選択されたインデックスをリセットさせているのではないかと思います。

于 2011-08-05T14:23:46.380 に答える
8

どこにDataBind()電話しますか?電話の前にチェック!IsPostBackしていますか?例えば:

protected void Page_Load(object sender, EventArgs e) {
    if (!IsPostBack) {
        ddlRestCity.DataSource = ...;
        ddlRestCity.DataBind();
    }
}

説明:!IsPostBack beforeをチェックしないと、リストは起動される前にDataBind()再入力されます(などの子イベントの前に起動されるため)。その後、が起動されると、「選択されたアイテム」が新しく入力されたリストの最初のアイテムになります。 SelectedIndexChangedPage.LoadSelectedIndexChangedSelectedIndexChanged

于 2011-08-05T14:23:19.530 に答える
0

r_city とは?

テキストボックスの場合は、次のようにする必要がありますr_city.text = ...

また、ポストバック チェックの削除を検討することもできます。通常、これは page.onload イベントで最も役立ちます。通常、チェックするのはif NOT ispostback...

于 2011-08-05T14:40:45.427 に答える