2016-08-05 18 views
0

Ich frage mich, wie ich den Text aus meinem HTML-Button/Dropdown-Menü in C# greifen kann? Mit der asp.net Dropdown-Liste konnte ich string text = dropdownlist.Value; Aber es scheint nicht so einfach zu sein, oder vielleicht ist es, mit einer anderen Art von Dropdown. Ich konnte die asp-Dropdown-Liste nicht verwenden, da sie nicht als Schaltfläche und Dropdown-Menü fungiert. Die folgenden Funktionen dienen zum Ändern des Textes vom Standard "Erweitert" zum ausgewählten Elementtext durch den Benutzer. Nachdem der Benutzer den Text der Schaltflächen geändert hat, möchte ich diesen Text erfassen und als Bedingung für eine sqlbuild.where-Klausel verwenden. Auch der Text der aktualisierten Schaltfläche sollte beibehalten werden, nachdem auf die Schaltfläche Suchen geklickt wurde. Mit der ASP-Drop-Down-Liste der Wert nach der Auffrischung blieb aber aus irgendeinem Grund, wenn ich zu suchen, wenn die aktualisierte Dropdown-Menü, wird die Änderung nach der AuswahlGet html button/Drop-down-Text von C# code

Something like this is what i had in mind to do: 
// get advancedsearch value 
string selectedTxt = AdvancedSearch.value; 
//filter on selected value 
if (selectedTxt == "item1") 
{ 
    sqlbuilder.where = ("[email protected]"); 
} 
else if (selectedTxt == "item2") 
{ 
    sqlbuild.where = ("[email protected]"); 
etc 

     // container for button/dropdown menu 
     <div class="container"> 
       <div class="row buffer"> 
        <div class="col-xs-2 col-sm-2 col-md-2 col-lg-2 "> 
          <div class="input-group" role="group" > 
           <div class="input-group-btn" role="group"> 
           <asp:Button runat="server" class="btn btn-secondary dropdown-toggle" id="AdvancedSearch" data-toggle="dropdown" OnClientClick="AdvancedSubmit();" style="background-color:#718CA1;color:#FFF;" Text="Advanced:" /> 
          <ul class="dropdown-menu" runat="server" id="dropdown" style="background-color:#718CA1;color:#FFF;"> 
           <li><a class="dropdown-item" href="#" data-value="asset">item1</a></li> 
           <li><a class="dropdown-item" href="#" data-value="building">item2</a></li> 
           <li><a class="dropdown-item" href="#" data-value="astmgrbems">item3</a></li> 
          </ul> 
          </div> 
          </div> 
        </div> 
        <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 text-center"> 
          <div class="input-group" role="group"> 
           <input type="text" id="InquiryInput2" onblur="javascript:removeSpaces()" style="display:none" runat="server" class="form-control" Width="280px" /> 
          </div> 
        </div> 
       </div> 
       </div> 

EDIT einreichen abgewischt - Realize habe ich vergessen, Funktionen hinzufügen wenn das hilft

Funktion AdvancedSubmit() { var obj = document.getElementById ('<% = AnfrageInput2.ClientID%>');

  if (obj.style.display == 'none') { 
      obj.style.display = 'block'; 
     } 
    }; 
    $(function() { 
     $(".dropdown-menu li a").click(function() { 
      var selText = $(this).text(); 
      /* $(".btn btn-secondary").html(selText);*/ 
      alert(selText); 
      document.getElementById('<%=AdvancedSearch.ClientID%>').value = selText; 
     }) 
    }); 
+0

Sieht so aus, als ob Sie ein 'Text' Attribut verwenden; wäre es nicht "button.Text"? – Whothehellisthat

+0

Ändert sich der Schaltflächentext tatsächlich auf der Seite? Wenn dies der Fall ist, würde dies nicht mit dem Formular zurückgesendet werden. Vielleicht könnten Sie dafür ein verstecktes Feld hinzufügen und diesen Wert gleichzeitig mit dem Wert der Schaltfläche ändern? – Whothehellisthat

+0

@Whothehellisthat ja die Schaltfläche Text ändert sich tatsächlich auf der Seite über die Funktion, die ich gerade eingefügt habe. Leider habe ich vergessen, es ursprünglich hinzuzufügen, obwohl ich es erwähnt habe. Du sagst also, dass ich ein verstecktes Feld am Frontend hinzufügen kann, das die HTML-selText-Änderung erfasst und dann als Filter auf der C# -Seite verwendet? – ryan45366

Antwort

1

Fügen Sie einfach ein verborgenes ASP-Feld hinzu. Dann im Javascript den Wert dieses Feldes sowie den Wert der Schaltfläche festlegen. Auf diese Weise wird es beim Übermitteln des Formulars an den Server zurückgesendet.