2016-08-05 54 views
0

我想知道如何我可以从我的HTML按钮/下拉菜单在C#中的文本?通过asp.net dropdownlist,我能够做到string text = dropdownlist.Value;但它看起来并不那么简单,或者它可能是,具有不同类型的下拉菜单。我不能使用asp下拉列表,因为它没有充当按钮和下拉菜单。以下功能用于将文本从默认的“高级”更改为用户选定的项目文本。在用户更改按钮文本后,我想抓住该文本并将其用作sqlbuild.where子句的条件。此外,更新后的按钮的文本应保持在单击搜索按钮后。与ASP下拉列表中的值保持在刷新后,但由于某种原因,当我搜索时更新的下拉菜单,改变擦拭选择后提交获取HTML按钮/下拉文本从C#代码

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> 

编辑 - 意识到我忘了补充功能如果有帮助

function AdvancedSubmit(){ var obj = document.getElementById('<%= InquiryInput2.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

看起来你正在使用'Text'属性;它会不会是'button.Text'? – Whothehellisthat

+0

页面上的按钮文字是否真的发生变化?如果是这样,则不会将其与表单一起发布。也许你可以为此添加一个隐藏字段,并在按钮的值的同时更改该值? – Whothehellisthat

+0

@Whathehellisthat是按钮文本实际上是通过我刚刚粘贴的功能在页面上改变的。对不起,忘了添加它,虽然我提到它。所以你说我可以在前端添加一个隐藏的字段来捕获html selText的变化,然后用它作为c#端的过滤器? – ryan45366

回答

1

只需添加一个ASP隐藏字段。然后在javascript中设置该字段的值以及按钮的值。这样,当表单被提交时,它将被发回服务器。