簡體   English   中英

jQuery的dropdownlist值無法在后面的C#代碼中識別

[英]dropdownlist values from jquery are not recognized in c# code behind

我試圖從asp.net dropdownlist控件中獲取選定的項目,該控件是從jquery ajax調用中填充的。 我能夠遍歷屏幕上的項目,請參閱頁面源代碼中隨附的選項,但是當我嘗試從c#后端代碼獲取值時,我得到的是空白值。 這就是我所擁有的:

   $('#<%=Button2.ClientID %>').click(function () {
                var Dropdown2 = $('#<%=ddlListAgents.ClientID %>');
                  Dropdown2.empty();
                  $.ajax({
                      type: "POST",
                      url: "WebForm3.aspx/fetchData",
                      data: "{selectedAgent: '" + $('#<%=txtAgentNameText.ClientID %>').val() +"'}",
                      contentType: "application/json; charset=utf-8",
                      dataType: "json",
                      success: function (response) {
                          Dropdown2.append(new Option("--Select Agent --", 0));
                          $.each(response.d, function (index, item) {
                              Dropdown2.append(new Option(item.Name, item.ID));
                          });
                      },
                      error: function (xhr, ajaxOptions, thrownError) {
                          alert(xhr.status);
                          alert(thrownError);
                      }
                  });
            });  

打電話后一切都設置好,我可以瀏覽選項。 但是,當我單擊按鈕並嘗試在此代碼(測試代碼)中獲取選定的值時:

protected void btnSelectAgentAdd_ServerClick(object sender, EventArgs e)
        {
            foreach (ListItem item in ddlListAgents.Items)
            {
                if (item.Selected.Equals(true))
                {
                    item.Value.ToString();
                }
                else
                {
                    item.Value.ToString();
                }
            }
            string one = ddlListAgents.SelectedValue;
        }    

在第一個循環之后,代碼將從for循環中退出,並且ddlListAgents.SelectedValue等於空字符串。

這是我用來獲取數據集的方法:

[WebMethod]
public static List<AgentName> fetchData(string selectedAgent)
{
    Dictionary<string, string> list = new Dictionary<string, string>();
    BL.Client client = new BL.Client();                              
    var agents = new List<AgentName>();
    if (selectedAgent != string.Empty)
    {
        list = client.GetAgentNamesForPopupSearch(selectedAgent);                   
    }

    foreach (KeyValuePair<string, string> val in list)
    {
        agents.Add(new AgentName { ID = Convert.ToInt32(val.Key), Name = val.Value });
    }
    return agents;
}

歡迎任何建議。 在此先感謝Laziale

編輯:添加頁面加載事件:

  if (!IsPostBack)
            {
                Dictionary<string, string> list = new Dictionary<string, string>();
                BL.Client client = new BL.Client();
                list = client.GetAgentNamesForPolicies2(Convert.ToInt32(4));
                ddlAgentName.DataSource = list;
                ddlAgentName.DataTextField = "Value";
                ddlAgentName.DataValueField = "Key";
                ddlAgentName.DataBind();
                ddlAgentName.Items.Insert(0, new ListItem("-- Select Agent --", string.Empty));            
            }
string selectedValue = Request.Form[ddlLanguage.UniqueID];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM