Доступ к данным строк в Telerik RadGrid (на стороне сервера) - PullRequest
9 голосов
/ 08 января 2009

У меня нет проблем с использованием Javascript для чтения строк компонента telerik radgrid, который я использую, однако я могу найти способ доступа к стороне сервера данных строк при возникновении обратной передачи. Я целую вечность искал решение, но не повезло. Любые указатели будут с благодарностью.

Tony

Ответы [ 7 ]

16 голосов
/ 08 января 2009

Возможно, вы захотите взглянуть на свойство DataKeyValues ​​ объекта OwnerTableView, которое позволит вам получить доступ к коллекции значений, представляющих поля в данной строке. Я использую его во время обработки события EditCommand, поскольку пользователи моего сайта направляются на страницу редактирования, если они щелкают по ссылке, чтобы редактировать строку в сетке, и мне нужно передать определенную информацию о данной строке в запросе строка.

Если это то, что вам нужно, вам также нужно определить, какие поля должны быть доступны через это свойство. Чтобы сделать это, посмотрите на свойство MasterTableView.DataKeyNames в таблице свойств для сетки. Вы в основном указываете список имен полей через запятую.

5 голосов
/ 02 апреля 2009

Я давно использую сетку Telerik и нашел в своих документах эти статьи о том, как извлекать данные из выбранных строк на стороне сервера или клиента:

Серверный на стороне клиента

Надеюсь, вы найдете их полезными.

Dick

3 голосов
/ 07 марта 2009

Серверная часть - это простая часть:

GridItemCollection gridRows = TestGrid.Items;
foreach (GridDataItem data in gridRows)
{
    ItemClass obj = (ItemClass)data.DataItem;
}

Это часть клиента, которую я не знаю! : [

1 голос
/ 22 марта 2010
private Int32 GetID()
{
    foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items)
    {
        if (dataItem.Selected == true)
        {
            Int32 ID = (Int32)dataItem.GetDataKeyValue("ID");
            return ID;
        }
    }
    throw new ArgumentNullException("Id Not found");
}
0 голосов
/ 17 июня 2011

Если вы правильно создали элементы управления в разметке или инициализации страницы для динамических элементов управления, то RadGrid правильно восстановит состояние.

Вы можете получить доступ к начальным значениям, которые были загружены из источника данных, как показано в примере ниже, при условии, что вы указали в табличном представлении, о котором идет речь, чтобы столбцы данных не изменялись.

protected T GetInitialGridData<T>(GridDataItem item, string uniqueColumnName) {
   item.ThrowIfNull("item");
   uniqueColumnName.ThrowIfNullOrEmpty("uniqueColumnName");

   return (T)item.OwnerTableView.DataKeyValues(gridItem.ItemIndex)(columnName);
}

Если вы используете динамический настраиваемый столбец шаблона и вам нужно получить какие-либо значения, которые теперь могут находиться в их состояниях, вы можете использовать:

protected string GetCustomTextBoxValue(GridDataItem item, string controlID) {
   item.ThrowIfNull("item");
   controlID.ThrowIfNullOrTrimmedEmpty("controlID");

   return ((TextBox)item.FindControl(controlID)).Text;
}
0 голосов
/ 13 мая 2011

Это тот, который работает для меня и использует коллекцию RadGrid.SelectedItems.

protected void LinkButton1_Click(object sender, EventArgs e)
    {
        List<Guid> OrderIdList = new List<Guid>();

        foreach (GridDataItem OrderItem in this.RadGrid1.SelectedItems)
        {
            OrderIdList.Add(new Guid(OrderItem.GetDataKeyValue("OrderId").ToString()));
        }
    }
0 голосов
/ 04 июня 2010
private Int32 GetID()
{
    foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items)
    {
        if (dataItem.Selected == true)
        {
           // Int32 ID = (Int32)dataItem.GetDataKeyValue("ID");
Int32 ID =Convert.ToInt32(dataItem.GetDataKeyValue("ID"));
            return ID;
        }
    }

}
//this will work
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...