1
  ddlBanAcc.Items.Insert(0, new ListItem("", ""));
  string s = ddlBanAcc.SelectedValue;
  string[] words = s.Split('|');
  if (ddlBanAcc.SelectedIndex > 1)
  {
    query += "'and DtaLineAccountToDebit='" + words[0] + "'";
  }

ddlBankAcc (ドロップダウンリストの選択) で、更新パネルにある Datagrid にデータを入力しています

ただし、コードは実行されておらず、このステートメントによって値が選択されていませんddlBanAcc.SelectedValue;

編集: HTML コード

<td align="left" valign="top">
                            &nbsp;</td>
                 <td>
                            Bank Account:
                        </td>
                        <td>
 <asp:DropDownList runat="server" ID="ddlBanAcc" Width="160px" TaEvalex="3">
    </asp:DropDownList>

                        </td>

編集: ddlBanAcc にデータを追加する方法

DataTable dtbankaccount = oDBAccess.getDataTable("SELECT BkiAccountNb + ' | ' + BkiCurrency+ ' | ' +BkiAccountNb AS CONCATE  From VwCieBankAcc");
    ddlBanAcc.DataTextField = "CONCATE";
    ddlBanAcc.DataSource = dtbankaccount;

    ddlBanAcc.DataBind();
4

4 に答える 4

10

IsPostBack を確認する必要があります。確認する必要がある場合は、DataBind を作成しないでください。DropDownList がすべての値を再取得し、選択が失われるためです。

if(!IsPostBack)
    ddlBanAcc.DataBind();

ViewState に値を保持する DropDownList では特に、IsPostBack を使用して完全なプロセスに入力する必要があります。最終的なコードは次のようになります。

if(!IsPostBack)
{
    DataTable dtbankaccount = oDBAccess.getDataTable("SELECT BkiAccountNb + ' | ' + BkiCurrency+ ' | ' +BkiAccountNb AS CONCATE  From VwCieBankAcc");
    ddlBanAcc.DataTextField = "CONCATE";
    ddlBanAcc.DataSource = dtbankaccount;

    ddlBanAcc.DataBind();
}

他の理由で DataBind を作成し、選択した後でも DropDownList の内容を変更する必要がある場合は、Request.Formasを使用していつでもポスト バック値を取得できます。

Request.Form[DromDownListID.UniqueID]
于 2012-10-11T05:44:00.883 に答える
3
    <asp:DropDownList ID="ddlBanAcc" runat="server" DataTextField="" DataValueField="">
    </asp:DropDownList>

バックエンドで DataTextField と DataValueField を定義してみてください。これは役立つはずです。

于 2012-10-11T04:50:30.610 に答える
1

AutoPostBack="true"ポストバックするには、 に追加する必要がありますDropDownList。これがコードが実行されていない理由だと思います。

于 2012-10-11T04:52:55.000 に答える
0

これを引き起こす可能性のある驚くべき問題がもう 1 つあります。私のリストの値はデータベースからのもので、値には改行とキャリッジ リターンが含まれていました: "\r\n"。これらの値は無害な空間のように見えますが、実際にはそうではありません! 私の解決策は、これらの非表示の Char 値を削除することでした。それが役に立てば幸い。

于 2015-04-01T03:54:09.560 に答える