2011-09-29 62 views
1

我有兩個圖像按鈕,根據客戶端想要查看的內容隱藏和顯示radgrid。當單擊按鈕時,grid.visible屬性設置爲true或false。問題是,當我第一次點擊按鈕時,頁面回覆並且不起作用。然後我再單擊幾次,它只顯示一條水平線(我假設它是網格而不是數據綁定)。我點擊幾次,網格顯示並完全隱藏。但是,當用戶離開頁面並返回到此頁面時,我遇到了同樣的問題。Telerik RadGrid可見屬性按預期工作

任何幫助,將不勝感激。

的.aspx

 <div class="RegistrationHistoryGrid" > 
      <telerik:RadGrid ID="rgRegistrationHistory" Width="100%" ShowHeader="true" AutoGenerateColumns="false" OnSelectedIndexChanged="rgRegistrationHistory_SelectedIndexChanged" AllowCustomPaging="true" AllowSorting="True" AllowPaging="True" PageSize="10" runat="server" Gridlines="None" CellSpacing="0" onneeddatasource="rgRegistrationHistory_OnNeedDataSource" > 
       <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True" EnableRowHoverStyle="true" EnablePostBackOnRowClick="true"> 
        <Selecting AllowRowSelect="True" /> 
       </ClientSettings> 
       <MasterTableView Width="100%" Summary="RadGrid table" DataKeyNames="ClientID, LastName, FirstName, Gender,DateOfBirth,Address"> 
       <Columns> 
        <telerik:GridBoundColumn HeaderText="Period" Reorderable="false" UniqueName="Period" DataField="Period"/> 
        <telerik:GridBoundColumn HeaderText="Plate" Reorderable="false" UniqueName="Plate" DataField="Plate"/> 
        <telerik:GridBoundColumn HeaderText="Comment" Reorderable="false" UniqueName="Comment" DataField="Comment"/> 
         </Columns> 
       <SortExpressions> 
        <telerik:GridSortExpression FieldName="LastName" SortOrder="Ascending" /> 
       </SortExpressions> 
      </MasterTableView> 
       <PagerStyle Mode="NextPrevAndNumeric" /> 
       <FilterMenu EnableImageSprites="False"></FilterMenu> 
       <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu> 
       </telerik:RadGrid> 
     </div> 

的.cs

protected void rgRegistrationHistory_OnNeedDataSource(object sender, GridNeedDataSourceEventArgs e) 
{ 
    List<int> fakeList = new List<int>(); 
    rgRegistrationHistory.DataSource = fakeList; 
} 

protected void imgChevronClosed_Click(object sender, ImageClickEventArgs e) 
{ 
    imgChevronOpen.Visible = true; 
    imgChevronClosed.Visible = false; 
    rgRegistrationHistory.Visible = false; 

} 
protected void imgChevronOpen_Click(object sender, ImageClickEventArgs e) 
{ 
    imgChevronOpen.Visible = false; 
    imgChevronClosed.Visible = true; 
    rgRegistrationHistory.Visible = true; 
} 
+0

您是否嘗試過在PlaceHolder中包裝網格,然後切換PlaceHolder的可見性? –

+0

像你在面板中的意思嗎? – joncodo

+0

在面板或PlaceHolder中。看起來你已經有了一個包裝網格的DIV,所以你可以把它改成一個Panel(不管怎樣都可以解析成DIV)。 –

回答

3

你,當你切換其可見性重新綁定網格。關於這個問題見this article

0

您可以嘗試鞏固你的邏輯,做這樣的事情,而不是:

標記:

<asp:ImageButton ID="imgToggleGrid" runat="server" ImageUrl="~/images/hide.png" OnClick="imgToggleGrid_Click" /> 

<asp:PlaceHolder ID="plcGrid" runat="server"> 
    <!-- GRID --> 
</asp:PlaceHolder> 

代碼隱藏:

protected void imgToggleGrid_Click(object sender, EventArgs e) 
{ 
    plcGrid.Visible = !plcGrid.Visible;   
    imgToggleGrid.ImageUrl = String.Format("~/images/{0}", plcGrid.Visible ? "hide.png" : "show.png"); 
} 
+0

這與Radgrid問題無關。邏輯在這裏不是問題。簡單來說,radgrid綁定是如何工作的。 – joncodo

+0

對不起,我打算使用PlaceHolder來切換網格的可見性。我相信這個解決方案會更好,因爲我不相信每次顯示或隱藏網格時都需要點擊數據庫。 –

相關問題