Gridview消失jQuery ASP.NET

时间:2015-10-13 12:50:20

标签: javascript c# jquery asp.net gridview

我正在创建一个允许使用ASP.NET编辑数据库表的Web应用程序。

我已经拥有应用程序中的所有功能,一切正常。但是,现在规范已经改变,我需要有多个gridview显示不同的数据库表。所以,我已经实现了jquery和一个下拉菜单,它只显示某些div,具体取决于下拉菜单中选择的值。

这很好,我只根据我选择的值显示我想要的gridview。虽然,在尝试编辑gridview时,gridview消失了;这只发生在实现jquery之后。

当我在下拉菜单中选择其他选项然后选择我想要的选项时,我可以再次显示网格视图。

这是stange因为编辑按钮不应该影响我在下拉菜单中选择的值。

有人可以帮忙吗?

jQuery的:

<script type="text/javascript">
        $(document).ready(function () {
            $('.group').hide();
            $('#no_option_selected').show();
            $('#DropDownList1').change(function () {
                $('.group').hide();
                $('#' + $(this).val()).show();
            })
        });
</script>

1 个答案:

答案 0 :(得分:0)

在.NET / C#中执行所有操作可能更容易,而不是ASP.NET / jQuery混合。将您的下拉列表转换为服务器控件并定义OnSelectedIndexChanged。 (别忘了将Autopostback设置为True)

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
    OnSelectedIndexchanged="Gridview_ShowHide">
</asp:DropDownList>

然后在你的代码背后:

public void Gridview_ShowHide(Object o, EventArgs e) 
{
    gv1.Visible = gv2.Visible = gv3.Visible = gv4.Visible = false;
    switch (DropDownList1.SelectedValue)
    {
         case 'gv1':
              gv1.Visible = True;
              break;
         case 'gv2':
              gv2.Visible = True;
              break;
         case 'gv3':
              gv3.Visible = True
              break;
         case 'gv4':
              gv4.Visible = True;
              break;
    }
}

通过这样做,ASP.NET的ViewState将跟踪哪个gridview可见且不可见,即使在回发后也是如此。