2016-11-01 15 views
0

下面的代碼; 代碼沒有返回值空字符串如何獲取下拉選擇的索引值,無需用按鈕點擊

private void DisplayDplace() 
    { 
     BusinessLogicLayer.Businesslogiclayer objll = new BusinessLogicLayer.Businesslogiclayer(); 
    DataSet ds = objll.Binddname(); 
    drpfromplace.DataSource = ds; 
    drpfromplace.DataTextField = "dname"; 
    drpfromplace.DataValueField = "did"; 
    drpfromplace.DataBind(); 
    drptoplace.DataSource = ds; 
    drptoplace.DataTextField = "dname"; 
    drptoplace.DataValueField = "did"; 
    drptoplace.DataBind(); 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     DisplayDplace(); 
    } 
} 

protected void Calendar1_SelectionChanged1(object sender, EventArgs e) 
{ 
    TextBox1.Text = Calendar1.SelectedDate.ToShortDateString(); 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Session["doj"] = TextBox1.Text; 
    Session["noofseats"] = DropDownList6.SelectedItem.ToString(); 
    Session["fd"]= drpfromplace.SelectedItem.Value.ToString(); 
    Session["td"] = drptoplace.SelectedItem.Value.ToString(); 
}  

}

回答

0

,如果你想獲得下拉withot回傳的價值你將不得不使用客戶端腳本如JavaScript/jQuery的的。如果你想要在代碼中獲得值,那麼你需要創建一個ajax調用。

在代碼中創建一個WebMethod背後:

[WebMethod] 
     public static string MyWebMethod(string name) 
     { 
      /your logic goes here 
      return ("Yeey"); 
     } 

現在在aspx.cs創建Ajax調用:

$('#mybutton').on('click',function(){ 

$.ajax({ 
      type: "POST", 
      url: "Default.aspx/MyWebMethod", 
      data: JSON.stringify({ name: $('#drpname').val() }), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      async: true, 
      success: function (data, status) { 
       alert("victory"); 
      },    
      failure: function (data) { 
       alert(data.d); 
      }, 
      error: function (data) { 
       alert(data.d); 
      } 
     }); 

}); 
+0

謝謝你的解決方案,但我不知道ajax – user7099076

+0

@ user7099076你應該得到的價值。你確定你沒有任何約束力嗎?或者在其他地方調用DisplayDplace()方法? – Arbaaz

0

您可以將ScriptManager添加到頁面,將代碼包裝在UpdatePanel中。

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 

    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 

      <asp:DropDownList ID="DropDownList1" runat="server"> 
       <asp:ListItem Text="A" Value="a"></asp:ListItem> 
       <asp:ListItem Text="B" Value="b"></asp:ListItem> 
      </asp:DropDownList> 
      <br /> 
      <asp:Button ID="Button1" runat="server" Text="getValue" OnClick="Button1_Click" /> 
      <br /> 
      <asp:Label ID="Label1" runat="server" Text=""></asp:Label> 

     </ContentTemplate> 
    </asp:UpdatePanel> 

背後的代碼與以往一樣工作。

protected void Button1_Click(object sender, EventArgs e) 
    { 
     Label1.Text = DropDownList1.SelectedValue; 
    } 
+0

感謝您的解決方案儘管我很喜歡,但它不起作用 – user7099076

+0

如果您在新頁面上使用我的代碼片段「原樣」會發生什麼?什麼不行? 'Label1'中有完整的PostBack或沒有值? – VDWWD

相關問題