我有一个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;
}
答案 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>