Telerik ASP.NET AJAX: как получить значение столбца с привязкой к данным на стороне клиента

Я хочу получить значение скрытого элемента управления, то есть TreeListBoundColumn TreeList:

<telerik:RadTreeList ID="rtlRshItems" ...>
    <Columns>
        <telerik:TreeListBoundColumn DataField="FtcPrevious" 
            UniqueName="FtcPrevious" Visible="false" runat="server">  
        </telerik:TreeListBoundColumn>
    </Columns>
</telerik:RadTreeList>

Это то, что я кодировал, но не работает (хотя это с форумов Telerik)

// Calculate the new FTC
var treeList = $find("<%= rtlRshItems.ClientID %>");
var ftcPrevious = treeList.get_items().getItem(0).findControl("FtcPrevious");

var ftcPreviousValue = ftcPrevious.value;

2 ответа

Решение

Вероятно, было бы проще использовать ClientDataKeyNames а также get_dataKeyValue() вместо того, чтобы пытаться скрыть столбец.

Измените определение элемента управления RadTreeList на что-то вроде:

<telerik:RadTreeList ID="rtlRshItems" ClientDataKeyNames="FtcPrevious" ...>
    <Columns>
    </Columns>
</telerik:RadTreeList>

Настройте свой Javascript:

var treeList = $find("<%= rtlRshItems.ClientID %>");
var ftcPreviousValue = treeList.getItem(0).get_dataKeyValue("FtcPrevious");

Примечание. В самой последней документации Telerik для RadTreeList нет списка get_items() как действительный вызов функции. Отрегулируйте по мере необходимости для вашей версии.

Во-первых, я бы рекомендовал установить атрибут Display="false" в элементе telerik:TreeListBoundColumn, а не в Visible = "false". Я считаю, что это может быть виновником.

Во-вторых, вы пытались использовать функцию getColumnByUniqueName() на стороне клиента:

var treeList = $find("<%= rtlRshItems.ClientID %>");
var ftcPrevious = treeList.getColumnByUniqueName("FtcPrevious");
Другие вопросы по тегам