0

2つのHtmlSelectコントロールがあり、最初のHtmlSelectの選択されたインデックスに従って2番目のコントロールをロードする必要があります。ただし、HtmlSelectにはselectedindexchangedイベントがないため、機能しません。私は何をする必要がありますか?何か案が?

例;

<!--These are my Html Select controls-->

 select runat="server" id="drpCity"></select> 
 <select runat="server" id="drpState">/select>



  protected void Page_Load(object sender, EventArgs e)
  {
     FillCities(drpCity);
     FillStates(drpState, drpCity.SelectedValue);
  }

  public void FillCitiesHtmlSelect(HtmlSelect drpCity)
        {
           BusCity busCity = new BusCity();
           List<EntCity> lentCity = busCity.SearchAll();
           drpCity.DataValueField = EntCity.Columns.CITYCODE;
           drpCity.DataTextField = EntCity.Columns.CITYNAME;
           drpCity.DataSource = lentCity;
           drpCity.DataBind();

            drpCity.Items.Insert(0, new ListItem("City", string.Empty));
        }

public void FillStatesHtmlSelect(HtmlSelect drpState, string cityCode)
{
    if (!string.IsNullOrEmpty(cityCode))
       {
          BusState busState = new BusState();
          List<EntState> lentEmsState = busState.Search(cityCode);
          drpState.DataValueField = EntState.Columns.STATECODE;
          drpState.DataTextField = EntState.Columns.STATENAME;
          drpState.DataSource = lentState;
          drpState.DataBind();
        }
        else
        {
          drpState.Items.Clear();
        }
           drpState.Items.Insert(0, "State", string.Empty));
   }
4

2 に答える 2

0

HTML 選択コントロールには 'selectedindexchanged' イベントがなく、代わりにクライアント側イベント 'onchange' があります。また、HTML 選択コントロールからサーバーサイドを呼び出すこともできません。C# コード ページ (サーバーサイド) 内で関数 writen を呼び出すには、Web サービスを使用する必要がありますc# 関数を webmethord として定義し、html 選択コントロールの「onchange」イベントで Web サービスを使用して関数を呼び出します。

于 2012-12-01T10:42:33.880 に答える
0

私はそれを実装していませんが、アプローチを提案できます。1 つの選択コントロールから JavaScript 関数を呼び出してデフォルト以外の値をチェックし、条件が満たされている場合は、2 番目の選択 HTML をロードします。

于 2012-11-28T10:39:04.333 に答える