【发布时间】: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