2012-05-14 2 views
1

Я пытаюсь создать базовый макрос, который инкапсулирует форму и возможность отправлять по электронной почте детали, введенные в нее. Он отлично работает для текстовых полей, но по какой-то причине DropDownLists берут первое значение в списке параметров. Я работаю над этим часами и, кажется, все пробовал, поэтому, надеюсь, кто-то может предложить решение. Я использую Umbraco 4.0.3, и, к сожалению, обновление не является вариантом. Мой уменьшенный код выглядит следующим образом:Получение SelectedValue из DropDownList

CorpRefundForm.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CorpRefundForm.ascx.cs" Inherits="umbracowebsitewizard_site.Usercontrols.CorpRefundForm" %> 

<asp:DropDownList ID="frm_dropdown" runat="server" CssClass="linkselect" /> 

<br /> 

<button id="submitButton" runat="server" onserverclick="submitButton_Click">Submit</button> 

CorpRefundForm.ascx.cs

using System; 
using System.Net.Mail; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace umbracowebsitewizard_site.Usercontrols 
{ 
    public partial class CorpRefundForm : UserControl 
    { 
     protected void Page_Init(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       frm_dropdown.Items.Add(new ListItem("Select one", "")); 
       frm_dropdown.Items.Add(new ListItem("One", "One")); 
       frm_dropdown.Items.Add(new ListItem("Two", "Two")); 
       frm_dropdown.Items.Add(new ListItem("Three", "Three")); 
       frm_dropdown.Items.Add(new ListItem("Four", "Four")); 
      } 
     } 

     public void submitButton_Click(object sender, EventArgs e) 
     { 
      SmtpClient mySMTPClient = new SmtpClient(); 

      mySMTPClient.Send("[email removed]", "[email removed]", "Test", frm_dropdown.SelectedValue + frm_dropdown.Text + frm_dropdown.SelectedItem.Value + frm_dropdown.SelectedItem.Text); 
     } 
    } 
} 

CorpRefundForm.ascx.designer.cs:

using System.Web.UI.WebControls; 

namespace umbracowebsitewizard_site.Usercontrols 
{ 
    public partial class CorpRefundForm 
    { 
     protected DropDownList frm_dropdown; 
    } 
} 
+0

Вы хотите получить только правильное значение? Что это за Frm_dropdown.SelectedValue + frm_dropdown.Text + frm_dropdown.SelectedItem.Value + frm_dropdown.SelectedItem.Text – freebird

+0

Это я пытаюсь все, что я мог видеть, чтобы попытаться получить значение из DropDownList. –

+0

Я написал ваш код, и все работает хорошо! – dotfreelancer

ответ

0

Решено! Оказывается, библиотека jquery.linkselect-1.2.07.min.js что-то делала с DropDownList, который сломал ее. Взял это, и это сработало.

0

Это вероятно, так как ваш первый ListItem не имеет назначенного Value. Попробуйте присвоить значение и посмотреть, работает ли оно.

frm_dropdown.Items.Add(new ListItem("Select one", "-1")); 
+0

Не повезло. Письмо просто содержит текст «-1-1-1Выберите один». –

Смежные вопросы