2014-02-13 57 views
0

我有一個.NET註冊表單,從數據庫中填充一些DDLs,並有其他硬編碼。該要求需要一系列三個相關的DDL:一個用於組織,另一個用於職位。依據所選組織上,一些職稱可能有子的選擇,像這樣:ASP.NET依賴DropDownLists在ASP.NET頁面

DDL1 DDL2 DDL3 
A  a  n/a 
B  a  c 
C  b  n/a 

在某些情況下,在DDL2同樣的選擇將需要DDL3選擇;在某些情況下,從DDL2中選擇就足夠了。例如,如果來自DDL1的選擇是醫院,DDL 2將包含醫師,並且DDL3將包含兒科醫生,並且我需要提交來自DDL1和DDL3的值。但是,如果DDL1是實驗室,DDL2的醫生選擇就足夠了,我會提交DDL1和DDL2。我有一個JavaScript文件,可以完美地處理所有選擇,但由於回發問題而無法獲取發送到數據庫的值。

我已經嘗試了幾個修復,包括UpdatePanels和觸發器,但我無法完全理解它。

我發現這個,它看起來像它完全符合我的需求。仍然在調整,以使其發揮作用。

http://code.msdn.microsoft.com/CSASPNETCascadingDropDownLi-0a3f1ecf#content

我有創建了一個簡單的XML例子:

<Countries> 

<Country name="China"> 
    <Region name="East China"> 
    <City name="ShangHai" guid="12345"></City> 
    <City name="SuZhou" guid="23456"></City> 
    <City name="NianJing" guid="34567"></City> 
    <City name="QingDao" guid="45678"></City> 
    <City name="ZheJiang" guid="56789"></City> 
    </Region> 
</Country> 

</Countries> 

這裏的C#來獲取城市名稱來填充DDL:

 /// <summary> 
    /// Get city based on region 
    /// </summary> 
    /// <param name="strRegion">The region name</param> 
    /// <returns>The list contains city</returns> 
    public static List<string> GetCityByRegion(string strRegion) 
    { 
     XmlDocument document = new XmlDocument(); 
     document.Load(strXmlPath); 
     XmlNodeList nodeList = document.SelectNodes(
      "Countries/Country/Region[@name='" + strRegion + "']/City"); 
     List<string> list = new List<string>(); 
     foreach (XmlNode node in nodeList) 
     { 
      list.Add(node.Attributes["name"].Value); 
     } 
     return list; 
    } 

如何獲得guid的價值到.NET形式,因爲這是我需要提交給數據庫的價值?

+0

可以理解的是,如果你只是在.net堆棧中進行這個操作,你想使用像你說的那樣的更新面板,或者你可以編寫RESTful服務並使用JavaScript或jQuery通過AJAX調用它們 – abc123

回答

0

您可以使用循環。

if(DDL1.SelectedValue.Equals("") || (DDL2.SelectedValue.Equals("")) 
{ 
//your message 
} 
else if (DDL1.SelectedValue.Equals("") || (DDL3.SelectedValue.Equals("")) 
{ 
//your message 
} 

...等等。

只需添加一些代碼即可滿足您的需求。如果您需要滿足兩個條件,則還可以使用「& &」。

希望這可以幫助你。