当用户点击gridview标题中的过滤器图标时,我想显示/隐藏文本框。最初,文本框是隐藏的。单击图标时,文本框会显示一秒钟,然后看起来页面会刷新,文本框会再次隐藏。 这是HTML:
<asp:TemplateField HeaderText="Group Name">
<HeaderTemplate> Group Name
<asp:ImageButton ID="uggvGroupFilter" runat="server" ImageUrl="Images/filter.png" OnClientClick="ShowHideFilterTxtBox('uggvTxtNameFilter')" />
<asp:TextBox ID="uggvTxtNameFilter" runat="server" AutoPostBack="true" style="display:none;" ClientIDMode="Static" OnTextChanged="uggvGridFilter_TextChanged">
</asp:TextBox>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="uggvLblGroupName" runat="server" Text='<%# Bind("GroupName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
这是javascript函数:
function ShowHideFilterTxtBox(filterID) {
var obj = document.getElementById(filterID);
if (obj.style.display == "none") {
obj.style.display = "block";
} else {
obj.style.display = "none";
}
}
这是我的文档就绪功能:
$(document).ready(function () {
//Configure the DropDownBox using the 'chosen' jquery plugin
$(".chosen-single").chosen({
search_contains: true,
width: "200px",
no_results_text: "Sorry, no match!"
});
});
我是否还需要在文档就绪函数中添加一些内容? 为什么文本框的样式只设置为秒,然后返回到原始样式显示“无”?
感谢。
答案 0 :(得分:0)
在客户端功能中执行return false
。
function ShowHideFilterTxtBox(filterID) {
var obj = document.getElementById(filterID);
if (obj.style.display == "none") {
obj.style.display = "block";
}
else {
obj.style.display = "none";
}
return false;
}
当你打电话
OnClientClick="return ShowHideFilterTxtBox('uggvTxtNameFilter')"