Telerik RadGrid-如何禁用列排序?
在Telerik中,有一种方法可以通过使用AllowSorting属性来禁用特定列的排序。我正在看,没有允许的运动属性。存在可排序属性,但其受保护且必须重写。那么,我用什么来关闭特定列的排序呢Telerik RadGrid-如何禁用列排序?,telerik,radgrid,Telerik,Radgrid,在Telerik中,有一种方法可以通过使用AllowSorting属性来禁用特定列的排序。我正在看,没有允许的运动属性。存在可排序属性,但其受保护且必须重写。那么,我用什么来关闭特定列的排序呢 GridBoundColumn上有一个AllowSorting属性,但在本例中,我使用的是GridTemplateColumn。有没有办法关闭GridTemplateColumn上的排序?下面的示例演示如何禁用特定列的排序 <telerik:RadGrid ID="RadGrid1" runat="
GridBoundColumn上有一个AllowSorting属性,但在本例中,我使用的是GridTemplateColumn。有没有办法关闭GridTemplateColumn上的排序?下面的示例演示如何禁用特定列的排序
<telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="True">
<HeaderContextMenu>
<CollapseAnimation Duration="200" Type="OutQuint" />
</HeaderContextMenu>
<MasterTableView>
<RowIndicatorColumn>
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px" />
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn AllowSorting="False" UniqueName="column">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<FilterMenu>
<CollapseAnimation Duration="200" Type="OutQuint" />
</FilterMenu>
</telerik:RadGrid>
请注意网格级别的AllowSorting属性(适用于所有列)
然后,在Columns集合中,注意如何为该特定列禁用它
<telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="True">
<HeaderContextMenu>
<CollapseAnimation Duration="200" Type="OutQuint" />
</HeaderContextMenu>
<MasterTableView>
<RowIndicatorColumn>
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px" />
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn AllowSorting="False" UniqueName="column">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<FilterMenu>
<CollapseAnimation Duration="200" Type="OutQuint" />
</FilterMenu>
</telerik:RadGrid>
对于TemplateColumns,我将尝试在网格级别关闭排序,并在需要的列上启用它。这样,您就不必对TemplateColumn执行任何操作,因为默认情况下它将被禁用。AllowSorting属性可从Visual Studio的源代码/标记视图中获得。例如(简化):
我不知道这对你有用吗?我还没有从代码隐藏文件中实例化我的网格,所以如果这是您正在做的,我无法轻松帮助您。但以上这些对我来说很有用
编辑: 啊,从最初的问题来看,不清楚您使用的是GridTemplate列。由于您现在使用的是SortExpression属性,在标记中使用相同的属性不适合您吗?因此:
<tr:RadGrid>
<MasterTableView>
<Columns>
<tr:GridTemplateColumn HeaderText="Description" DataField="field"
SortExpression="">
<!-- template here etc. -->
</tr:GridTemplateColumn>
</Columns>
</MasterTableView>
</tr:RadGrid>
好的,我得到了想要的效果,我通过将GridTemplateColumn的SortingExpression属性设置为空来关闭排序
Grid.Columns.FindByUniqueName("Type").SortExpression = string.Empty;
这看起来像一个黑客。为什么没有显式属性来关闭排序?哦,好吧。这很有效
如果你知道更好的方法,请告诉我
谢谢。如果您使用的是GridTemplateColumn,则始终可以为您自己的headertemplate提供一个标签作为标题,而不是链接按钮。A我们做了一些额外的工作,但效果很好。如果要禁用对所有GridTemplateColumns的排序,则最好使用“hack”。Telerik现在有一个名为HeaderButtonType的新属性(也存在于模板列上!),该属性可以设置为“None”,以呈现标签,而不是列标题文本的链接按钮。如中所述: 如果只想禁用特定列的排序,可以将列的IsSortable属性配置为False:
<telerik:GridViewColumn IsSortable="False" />
是的,GridBoundColumn上有一个AllowSorting属性,但在本例中,我使用的是GridTemplateColumn。有没有办法关闭GridTemplateColumn上的排序?是的,可以,但GridTemplateColumn没有启用/禁用排序属性。是的,GridBoundColumn上有AllowSorting属性,但在这种情况下,我使用的是GridTemplateColumn。有没有办法关闭GridTemplateColumn上的排序?我在原来的帖子中编辑了一个额外的示例。这是基于你在这里所做的。这对你有用吗?是的。基本上我们在做同样的事情。我只是在代码隐藏中做,而你是在反极性地做。不知道他们为什么不提供AllowSorting,但不要认为这是一个黑客行为,至少对于客户端绑定来说,这完全禁用了排序行为。