2016-08-23 78 views
0

我有一个ASP.net网页有2个gridviews。我有2个按钮,我希望能够单击一个使1 gridview可见,另一个隐藏,另一个按钮使第一个gridview隐藏,第二个gridview可见。当我点击其中任何一个都没有发生。我玩过gridview可见的设置w /没有运气。我相信它很简单。感谢您的期待!部分代码如下:ASP.net使按钮设置GridView Visible属性为True或False

的2个GridView的:

<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

我没有看到你的代码btnShowUsers和btnShowOrders。 – Win

回答

0

基本上你的代码应该工作,但也许事情是错误的大方向。还请提供您的按钮的代码,也许是完整的页面代码 - 或者这可能在UpdatePanels中?


无论如何,它是否必须通过回发,意味着在C#代码?否则,我会建议你使用客户端解决方案,f.e. jQuery或JavaScript。

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

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

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

这也使你做花哨的东西如动画(试行.hide(500)),或者使用功能,如切换( ),并且它不会导致回发,因此不会重新加载整个页面。

不要忘记将拉泰什稳定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> 
相关问题