ASP.net make Buttons将GridView Visible属性设置为True或False

时间:2016-08-23 22:21:47

标签: asp.net gridview

我有一个ASP.net网页,有2个网格视图。我有2个按钮,我希望能够单击一个以使1个网格视图可见而另一个隐藏,另一个按钮使第一个网格视图隐藏,第二个网格视图可见。当我点击其中任何一个时都没有任何反应我玩过gridview可见的设置,没有运气。我很确定它很简单。谢谢你的期待!一些代码如下:

2个网格视图:

<asp:GridView ID="gridShowUsers" runat="server" AutoGenerateColumns="False" DataKeyNames="user_id" DataSourceID="SqlDataSource1" AllowPaging="True">
        <Columns>
            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
            <asp:BoundField DataField="user_id" HeaderText="User ID" InsertVisible="False" ReadOnly="True" SortExpression="user_id" />
            <asp:BoundField DataField="user_name" HeaderText="Username" SortExpression="user_name" />
            <asp:BoundField DataField="user_password" HeaderText="Password" SortExpression="user_password" />
            <asp:BoundField DataField="user_securitylevel" HeaderText="Security Level" SortExpression="user_securitylevel" />
        </Columns>
    </asp:GridView>

<asp:GridView ID="gridOrders" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ordr_id" DataSourceID="SqlDataSource2" EmptyDataText="There are no Orders to Display" AllowPaging="True">
        <Columns>
            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
            <asp:BoundField DataField="ordr_id" HeaderText="ordr_id" InsertVisible="False" ReadOnly="True" SortExpression="ordr_id" />
            <asp:BoundField DataField="ordr_date" HeaderText="ordr_date" SortExpression="ordr_date" />
            <asp:BoundField DataField="ordr_fname" HeaderText="ordr_fname" SortExpression="ordr_fname" />
            <asp:BoundField DataField="ordr_lname" HeaderText="ordr_lname" SortExpression="ordr_lname" />
            <asp:BoundField DataField="ordr_streetaddress" HeaderText="ordr_streetaddress" SortExpression="ordr_streetaddress" />
            <asp:BoundField DataField="ordr_city" HeaderText="ordr_city" SortExpression="ordr_city" />
            <asp:BoundField DataField="ordr_state" HeaderText="ordr_state" SortExpression="ordr_state" />
            <asp:BoundField DataField="ordr_zipcode" HeaderText="ordr_zipcode" SortExpression="ordr_zipcode" />
        </Columns>
    </asp:GridView>

按钮后面的代码:

protected void btnShowUsers_Click(object sender, EventArgs e)
{
    gridShowUsers.Visible = true;
    gridOrders.Visible = false;
}

protected void btnShowOrders_Click(object sender, EventArgs e)
{
    gridShowUsers.Visible = false;
    gridOrders.Visible = true;
}

1 个答案:

答案 0 :(得分:0)

基本上你的代码应该可以工作,但整体上下文可能有问题。还请提供按钮的代码,也许还有完整的页面代码 - 或者这些内容可能在UpdatePanels中?

无论如何,它是否必须通过回发发生,这意味着在c#-code中?否则我会建议你使用客户端解决方案,例如。 jQuery或javascript。

在jQuery中你可以这样做(假设你的按钮ID):

$("#btnShowUsers").on("click", function(){
  $("#gridShowUsers").show();
  $("#gridOrders").hide();
});

$("#btnShowOrders").on("click", function(){
  $("#gridShowUsers").hide();
  $("#gridOrders").show();
});

这也可以让你做动画之类的花哨的东西(尝试.hide(500))或使用toggle()之类的功能,它不会导致回发,因此不会重新加载整个页面

不要忘记将lates stable jQuery库添加到你的asp.net -section(https://developers.google.com/speed/libraries/#jquery)中:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>