在their documentation Telerik中说,有一种方法可以通过使用AllowSorting属性禁用特定列的排序。我正在查看Telerik.Web.UI.GridColumn members并且没有AllowSorting属性。有一个Sortable属性但它受保护,必须被覆盖。那么我该怎样用来关闭特定列的排序?
GridBoundColumn上有一个AllowSorting属性,但在这种情况下我使用的是GridTemplateColumn。有没有办法关闭GridTemplateColumn上的排序?
答案 0 :(得分:6)
可以从Visual Studio的源/标记视图中获取AllowSorting属性。例如(简化):
<tr:RadGrid>
<MasterTableView>
<Columns>
<tr:GridBoundColumn DataField="field" HeaderText="Description"
AllowSorting="false" />
</Columns>
</MasterTableView>
</tr:RadGrid>
我不知道这对你有用吗?我还没有从代码隐藏文件中实例化我的网格,所以如果这就是你在做什么,我不能轻易地帮助你。但以上对我有用。
修改强>
从最初的问题不清楚,您使用的是GridTemplate列。正如您现在使用的是SortExpression属性,在标记工作中不使用相同的属性吗?所以:
<tr:RadGrid>
<MasterTableView>
<Columns>
<tr:GridTemplateColumn HeaderText="Description" DataField="field"
SortExpression="">
<!-- template here etc. -->
</tr:GridTemplateColumn>
</Columns>
</MasterTableView>
</tr:RadGrid>
答案 1 :(得分:4)
好的,我得到了预期的效果,我通过将GridTemplateColumn的SortingExpression属性设置为空来关闭排序。
Grid.Columns.FindByUniqueName("Type").SortExpression = string.Empty;
这看起来像个黑客。为什么没有明确的属性来关闭排序?那好吧。这有效。
如果你知道更好的方法,请告诉我。
感谢。
答案 2 :(得分:3)
Telerik现在有一个名为HeaderButtonType的新属性(也存在于模板列中!),可以将其设置为“None”以呈现标签,而不是列标题文本的链接按钮。
答案 3 :(得分:0)
以下是一个示例,说明如何禁用特定列的排序。
请注意网格级别的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做任何事情,因为默认情况下它将被禁用。
答案 4 :(得分:0)
如果您使用GridTemplateColumn,您可以随时提供自己的标题作为标题而不是链接按钮的headertemplate。我们有点额外的工作,但这很好。如果你要禁用所有GridTemplateColumns的排序,那么你的“hack”将是最好的。
答案 5 :(得分:0)
如Telerik Docs中所述:
如果您只想禁用特定列的排序,可以将列的IsSortable属性配置为False:
<telerik:GridViewColumn IsSortable="False" />