【问题标题】:Get html button/drop down text from c# code从 C# 代码获取 html 按钮/下拉文本
【发布时间】:2016-08-05 16:19:13
【问题描述】:

我想知道如何从 c# 中的 HTML 按钮/下拉菜单中获取文本?使用 asp.net 下拉列表,我能够执行 string text = dropdownlist.Value;但它似乎没有那么简单,或者可能是,使用不同类型的下拉菜单。我不能使用 asp 下拉列表,因为它没有充当按钮和下拉菜单。以下功能用于将文本从默认的“高级”更改为用户选择的项目文本。用户更改按钮文本后,我想获取该文本并将其用作 sqlbuild.where 子句的条件。单击搜索按钮后,更新按钮的文本也应保留。使用 asp 下拉列表,刷新后值仍然存在,但由于某种原因,当我搜索更新的下拉菜单时,选择提交后更改被擦除

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 = ("input1@");
}
else if (selectedTxt == "item2")
{
   sqlbuild.where = ("input2@");
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>

编辑 - 意识到我忘了添加功能,如果有帮助的话

函数高级提交(){ var obj = document.getElementById('');

         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;
         })
     });

【问题讨论】:

  • 看起来您正在使用Text 属性;会不会是button.Text
  • 页面上的按钮文本是否真的发生了变化?如果是这样,这将不会与表单一起发回。也许您可以为此添加一个隐藏字段,并同时更改该值作为按钮的值?
  • @Whothehellisthat 是的,按钮文本实际上正在通过我刚刚粘贴的功能在页面上发生变化。很抱歉忘记添加它,即使我提到了它。所以你是说我可以在前端添加一个隐藏字段来捕获 html selText 更改,然后将其用作 c# 端的过滤器?
  • @Whothehellisthat 我正在为单击高级搜索按钮后出现的文本框 InquiryInput2 使用 Text 属性。默认为隐藏。
  • 是的。自从我 c#-ed 以来已经有一段时间了,但只需添加一个 asp 隐藏字段。然后在 javascript 中设置该字段的值以及按钮的值。这样在提交表单时它就会被发送回服务器。

标签: javascript c# asp.net html


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2016-03-06
    相关资源
    最近更新 更多