C# Telerik RadGrid可见属性未按预期工作
我有两个图像按钮,可以根据客户希望看到的内容隐藏和显示radgrid。单击按钮时,grid.visible属性设置为true或false。问题是,当我第一次单击按钮时,页面会发回并且不起作用。然后我再单击几次,它只显示一条水平线(我假设它是网格而不是数据绑定)。我再单击几次,网格就会完美地显示和隐藏。然而,当用户离开页面,然后返回到这个页面时,我遇到了同样的问题C# Telerik RadGrid可见属性未按预期工作,c#,asp.net,css,gridview,telerik,C#,Asp.net,Css,Gridview,Telerik,我有两个图像按钮,可以根据客户希望看到的内容隐藏和显示radgrid。单击按钮时,grid.visible属性设置为true或false。问题是,当我第一次单击按钮时,页面会发回并且不起作用。然后我再单击几次,它只显示一条水平线(我假设它是网格而不是数据绑定)。我再单击几次,网格就会完美地显示和隐藏。然而,当用户离开页面,然后返回到这个页面时,我遇到了同样的问题 <div class="RegistrationHistoryGrid" > &l
<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>
任何帮助都将不胜感激
<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>
.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
<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>
protectedvoid rgRegistrationHistory\u OnNeedDataSource(对象发送方,GridNeedDataSourceEventArgs e)
{
List fakeList=新列表();
rgRegistrationHistory.DataSource=fakeList;
}
受保护的无效imgChevronClosed_Click(对象发送者,图像单击事件参数e)
{
imgChevronOpen.Visible=true;
imgChevronClosed.Visible=false;
rgRegistrationHistory.Visible=false;
}
受保护的无效imgChevronOpen\u单击(对象发送者,图像单击事件参数e)
{
imgChevronOpen.Visible=false;
imgChevronClosed.Visible=true;
rgRegistrationHistory.Visible=true;
}
您可以尝试整合您的逻辑,改为执行以下操作:
<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>
标记:
<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>
<asp:ImageButton ID="imgToggleGrid" runat="server" ImageUrl="~/images/hide.png" OnClick="imgToggleGrid_Click" />
<asp:PlaceHolder ID="plcGrid" runat="server">
<!-- GRID -->
</asp:PlaceHolder>
切换栅格可见性时,必须重新绑定栅格。有关此问题,请参见。您是否尝试过将网格包装在占位符中,然后切换占位符的可见性?在面板或占位符中。看起来你已经有一个DIV包住了网格,所以你可以把它改成一个面板(无论如何都会分解成一个DIV)。这与Radgrid问题无关。逻辑不是这里的问题。很抱歉,我想用占位符来切换网格的可见性。我相信这个解决方案会更好,因为我不相信每次显示或隐藏网格时都需要访问数据库。
<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>