2016-08-23 84 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> 
相關問題