asp.net
  • drop-down-menu
  • casting
  • selectedindexchanged
  • nested-datalist
  • 2012-07-04 22 views 0 likes 
    0

    我有一個數據列表,其中包含兩個dropdownCountry在datalistCity和一個按鈕來動態添加dropdownCountry和datalistCity我想填充dropdowncity上DropdownCountry的selectedIndex變化碼低於如何將字符串轉換爲下拉控件或找到控件datalist與control.client id已知asp.net

    ASPX代碼

    <asp:DropDownList ID="DDSubOffCity" OnSelectedIndexChanged='GetSelectedCityValue' AutoPostBack="false" runat="server" Width="355px"> <asp:ListItem Value="0">Select</asp:ListItem> </asp:DropDownList> 
    <asp:DropDownList ID="DDSubOffCountry" runat="server" OnSelectedIndexChanged='GetSelectedCountryValue' AutoPostBack="true" Width="355px"> <asp:ListItem Value="0">Select</asp:ListItem> </asp:DropDownList> 
    

    後面數據列表代碼itembound

    DDSubOffCountry.Attributes.Add("onChange", "javascript:NewBufferDDCountryValue('" + DDSubOffCountry.ClientID + "','" + DDSubOffCountry.SelectedValue + "');"); 
          DDSubOffCity.Attributes.Add("onChange", "javascript:NewBufferDDCityValue('" + DDSubOffCity.ClientID + "', '" + DDSubOffCity.SelectedValue + "');");} 
    

    JavaScript代碼

    function NewBufferDDCountryValue(objddCountry) 
         { 
          try { 
           if (objddCountry != 'null') { 
            var ctlDDl = objddCountry.toString(); 
            var parts = ctlDDl.split('_', 4); 
            var indexId = parts[3]; 
            var objHidden = document.getElementById('ContentPlaceHolder1_DataListOffices_hiddenDDSubOffCountry_' + indexId); 
            objHidden.value = document.getElementById(objddCountry).value; 
           } 
          } catch (e) { alert(e); } 
         } 
    
         function NewBufferDDCityValue(objddCity) 
         { 
          try { 
           if (objddCity != 'null') { 
            var ctlDDl = objddCity.toString(); 
            var parts = ctlDDl.split('_', 4); 
            var indexId = parts[3]; 
            var objHidden = document.getElementById('ContentPlaceHolder1_DataListOffices_hiddenDDSubOffCity_' + indexId); 
            objHidden.value = document.getElementById(objddCity).value; 
           } 
          } catch (e) { alert(e); }  
         } 
    

    ,這將在後面的代碼時onselectedindexchange事件發生

    public void GetSelectedCountryValue(object sender, EventArgs e) 
        { 
         DropDownList drp = (DropDownList)sender; 
    
         ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "javascript:NewBufferDDCountryValue('" + drp.ClientID + "');", true); 
         var city = new City(); 
         string indexer = drp.ClientID; 
         indexer=indexer.Split(Convert.ToChar("_"))[3]; 
         string senderCity ="ContentPlaceHolder1_DataListOffices_DDSubOffCity_" + indexer; 
    
         DropDownList drpCity; 
         /*****************/ 
    

    如何找到一個CNTROL如果客戶端ID只知道要調用的函數。或如何將字符串轉換爲dropdownCity要填充 drpCity =的FindControl(senderCity);

     /********************/ 
    
         city.populateCity(drpCity, drp.SelectedValue); 
        } 
    

    在GetSelectedCountryValue功能,你可以看到,我有dropdownCountry 的指數現在我知道該控件的名稱,但不可能弄明白如何通過僅其客戶端Id任何幫助表示讚賞發現控制。

    +0

    你的JavaScript函數並不需要兩個參數。但你傳遞兩個參數。 –

    回答

    0

    的GetSelectedCountryValue是一個C#方法,這樣你就可以直接使用DDSubOffCountry.SelectedItem.Text因爲DropDownList的是Web服務器控件

    +0

    我想查找ddSubOffCity – skhurams

    +0

    即使ddSubOffCity是一個Web服務器控件,因此您可以使用與國家DropDown相同的方式,例如ddSubOffCity.SelectedItem.Text – HatSoft

    +0

    但它的數據列表 – skhurams

    相關問題