文本框仅在javascript函数运行后临时显示

时间:2015-12-21 16:52:39

标签: javascript asp.net gridview

当用户点击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!"
  });         
});

我是否还需要在文档就绪函数中添加一些内容? 为什么文本框的样式只设置为秒,然后返回到原始样式显示“无”?

感谢。

1 个答案:

答案 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')"