#asp.net #telerik #radgrid
#asp.net #telerik #radgrid
Вопрос:
Я разрабатываю элементы управления Telerik для ASP.NET AJAX и работа с событием ItemCommand от RadGrid. Мне нужно отфильтровать / выбрать определенные элементы (или строки) из сетки.Коллекция элементов?
Вот моя разметка для кнопки в RadGrid.
<telerik:GridButtonColumn runat="server" Text="Fill Days" ImageUrl="images/16/disk_blue.png" ButtonType="ImageButton" CommandName="FillDays" HeaderTooltip="Fill for this day" />
И код, лежащий в основе:
Protected Sub myDatagrid_ItemCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles myDatagrid.ItemCommand
'as i have lots of rows in table, i don't want to loop through all items.
For Each gridDataItem As GridDataItem In myDatagrid.Items
Next
End Sub
Как мне отфильтровать эти элементы сетки, чтобы у меня были определенные элементы с определенным значением столбца?
Любое решение будет высоко оценено.
Ответ №1:
Я работаю на C #, но идея та же. Вы должны указать в MasteTable DataKeyName, который вы используете для индексации вашей таблицы.
<telerik:RadGrid ID="RadGrid1" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource" OnItemCommand="RadGrid1_ItemCommand" Culture="cs-CZ">
<MasterTableView DataKeyNames="Id">
<Columns>
<telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Default"/>
</telerik:GridButtonColumn>
<telerik:GridBoundColumn DataField="Id" FilterControlAltText="Filter column1 column" UniqueName="Id" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn ButtonType="LinkButton" CommandName="Apply">
</telerik:GridButtonColumn>
...
</Columns>
</MasterTableView>
</telerik:RadGrid>
Затем используйте этот индекс:
protected void RgFiltry_ItemCommand(object sender, GridCommandEventArgs e)
{
var filterId = (int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["Id"];
switch (e.CommandName)
{
case "Apply":
Apply(filterId);
break;
case "Default":
SaveDefault(filterId);
break;
default:
break;
}
}
Комментарии:
1. Ваш ответ позволяет найти данные конкретного элемента, например, идентификатор, используя DataKeyValues. Я не хочу это получать, мне нужно выбрать определенные элементы из myDatagrid. Коллекция элементов, например, если в ней десять элементов, мне нужно выбрать из нее 5 элементов.
2. Хм, боюсь, я не смогу вам помочь. Если вам нужно сохранить данные в сетке, вы должны перебирать их. Но если вы хотите использовать, например, подкачку сетки, я думаю, что myDatagrid . Элементы будут возвращать только активную страницу…