Получить значение из GridTemplateColumn на стороне сервера (Telerik RadGrid) - PullRequest
4 голосов
/ 11 октября 2011

На моей странице aspx (упрощенно) есть следующий код:

<telerik:RadGrid ID="rgd_grid" runat="server">
<MasterTableView>
<Columns> 
     <telerik:GridTemplateColumn UniqueName="Unique" HeaderText="Header" DataField="dataField">
     <ItemTemplate>
          <%# DataBinder.Eval(Container.DataItem, "expression") %>
     </ItemTemplate>
     </telerik:GridTemplateColumn> 
</Columns>
</MasterTableView>

Мне просто нужно сделать цикл в сетке, чтобы получить значения ячеек кода, но я не нашел способа получить значение в выражении "Eval" ... Я пытаюсь следующее:

rgd_grid.MasterTableView.Items[0]["Unique"].Text;

Но свойство text пусто, а все остальные верны. На самом деле, я пробовал много других вещей, но это, кажется, наиболее близко к цели.

С уважением, я ценю любую помощь!

Ответы [ 3 ]

4 голосов
/ 11 октября 2011

Вы уверены, что возвращаемый товар не является заголовком или чем-то в этом роде?Я думаю, что заголовок включен в результаты, но может быть ошибочным.Добавьте проверку, например:

var item = rgd_grid.MasterTableView.Items[0] as GridDataItem;
if (item != null)
    string text = item["Unique"].Text;

Если это не сработает, вы всегда можете прибегнуть к использованию элемента управления Label в шаблоне и найти его по идентификатору.

2 голосов
/ 11 октября 2011

Вы должны использовать datakeys для извлечения значений из сетки.

Вы можете использовать свойство DataKeyNames в MasterTableView, чтобы указать нужные столбцы, например:

<telerik:RadGrid ID="RadGrid1" runat="server" ...>
    <MasterTableView DataKeyNames="Col1, Col2, Col3" ...>

А затем в коде позади:

string col1 = RadGrid1.Items[0].GetDataKeyValue("Col1").ToString();
0 голосов
/ 25 ноября 2015

Вот еще один способ, так как я использовал DataBinder для получения своего литерального контента, а также для его отображения:

 protected void RadGrid_OnItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem dataItem = e.Item as GridDataItem;
            var test = DataBinder.Eval(dataItem.DataItem, "Column").ToString();                
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...