2016-08-30 3 views
-1

So arbeite ich in ASP.net zum ersten Mal, also weiß ich nicht, ob es die If-Anweisung ist, die gebrochen ist oder ob es etwas seltsam zwischen Client-Server ist, die ich nicht verstehe noch .... Unten wird mein Server-Seite und Client-Seite Code sein. Ich habe meinen Code in eine Protokolldatei schreiben, so dass ich weiß, dass ich die korrekte Syntax in meiner If-Anweisung habe. Was dieses Programm bisher gemacht hat, ist, dass es zwei Dropdown-Listen gibt, die Auswahl aus der ersten wird bestimmen, was in der zweiten ist. Verwenden Sie fest codierte Werte für den Test zuerst, bevor Sie ihn in eine SQL-Datentabelle umwandeln. Im Moment wähle ich den ersten Wert und nichts passiert. Jede Hilfe, die herausfindet, was damit nicht funktioniert, wird geschätzt.Wenn Anweisung das Ereignis nicht auslöst

Server Side

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using FIS_DashBoard_Web.cs; 

namespace FIS_DashBoard_Web.www 
{ 
    public partial class PSBSecondary : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
     Utils ut = new Utils(); 
     protected void ddlLine_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (ddlLine.SelectedItem.Equals("WSM2")) 
      { 
       ddlBuiltProduct.Items.Add("GFE Control Board"); 
      } 
      ut.WriteToLog(ddlLine.SelectedItem.ToString()); 
     } 
    } 

} 

Client Side

<div style="text-align: right;"> 
    <asp:Table ID="Table2" runat="server"> 
     <asp:TableRow> 
     <asp:TableHeaderCell Text="Line"/> 
     <asp:TableCell> 
      <asp:DropDownList ID="ddlLine" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlLine_SelectedIndexChanged"> 
       <asp:ListItem Value="WSM1" Text="WSM1"/> 
       <asp:ListItem Value="WSM2" Text="WSM2" /> 
       <asp:ListItem Value="Pillarhouse 1" Text="Pillarhouse 1"/> 
       <asp:ListItem Value="Pillarhouse 2" Text="Pillarhouse 2"/> 
      </asp:DropDownList> 
     </asp:TableCell> 
    </asp:TableRow> 
     <asp:TableRow> 
      <asp:TableHeaderCell Height="20" Text="What Product Was Built?"/> 
      <asp:TableCell> 
       <asp:DropDownList ID="ddlBuiltProduct" runat="server" AutoPostBack="true"> 

       </asp:DropDownList> 
      </asp:TableCell> 
     </asp:TableRow> 
    </asp:Table> 
    </div> 
+0

Errr. der _first_ Wert ist 'WSM1'? Also, das ist nicht gleich WSM2. Die Bedingung 'if' ist also nicht erfüllt. –

+0

Könnten Sie die Listenelemente wie folgt definieren: '' verbesserte die Lesbarkeit. Setzen Sie einen Haltepunkt auf die if-Anweisung, um zu sehen, ob das selectedItem wirklich gleich 'WSM2' ist. – Max

+0

Legen Sie Haltepunkte fest, gehen Sie durch Ihren Code und überprüfen Sie Ihre Variablen. – CodeCaster

Antwort

3

Verwenden SelectedItem.Text

if (ddlLine.SelectedItem.Text.Equals("WSM2")) 
{ 
    ddlBuiltProduct.Items.Add("GFE Control Board"); 
} 
+0

Nicht unwissend zu sein, aber ist das nicht das, was ich benutze? – DisarmedDevo

+1

@DisarmedDevo Ich denke, Sie vergleichen jetzt eine Zeichenfolge mit einem ListItem-Objekt. Durch Einfügen von '.Text' wird die Eigenschaft' Text', die eine Zeichenfolge ist, eingefügt. Dies ist der String definiert an '' – Max

+0

@DisarmedDevo Sie haben 'ListItem' mit' string' verglichen jetzt vergleichen Sie 'string' mit' string' – Mairaj

Verwandte Themen