Как я могу назначить одно значение для столбца с помощью js в RadGrid - PullRequest
1 голос
/ 07 ноября 2011

У меня есть Radgrid со всеми строками всегда в режиме редактирования. Мне нужна следующая функциональность в одном из столбцов: после редактирования элемента все строки в этом столбце принимают это значение. Вот как выглядит моя колонка.

  <telerik:GridTemplateColumn HeaderText="Opis" HeaderStyle-Width="125px" ItemStyle-Width="120px"
                            UniqueName="poz_nazwa">
                            <ItemTemplate>
                                <%#DataBinder.Eval(Container.DataItem, "poz_nazwa")%>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <telerik:RadTextBox runat="server" ID="Rtopis" DataTextField="poz_nazwa" DataValueField="poz_nazwa"
                                    Width="120px" Text='<%#Bind("poz_nazwa") %>' onfocus="javascript:podp(this.id);"
                                    AutoCompleteType="Disabled" onpropertychange="Opisblur()">
                                </telerik:RadTextBox>
                            </EditItemTemplate>
                        </telerik:GridTemplateColumn>

А вот что я пробовал и не работает:

        function OpisBlur() {
            if (event.propertyName == 'value') {
                var grid = $find("<%=RadGPozycje.ClientID %>");
                var masterTableView = grid.get_masterTableView();
                var iloop;
                if (masterTableView != null) {
                    var gridItems = masterTableView.get_dataItems();
                    var i;
                    for (i = 0; i < gridItems.length; ++i) {
                        var gridItem = gridItems[1];
                        var cell = gridItem.get_cell("poz_nazwa");
                        var controlsArray = cell.getElementsByTagName('input');
                        if (controlsArray.length > 0) {
                            var rdo = controlsArray[0];
                            rdo.value = "valueofchangeditem";                         
                        }
                    }
                }
            } 
        }

Есть две наиболее очевидные проблемы с моим подходом:

  1. Я изменяю только выбранный элемент, а не все. Когда я пытаюсь использовать masterTableView.get_editItems () IE говорит, что такого метода не существует.
  2. Этот код вызывает переполнение стека, так как функция происходит при изменении свойства, и внутри него я меняю свойство.

Можете ли вы помочь мне найти решение для реализации желаемой функциональности?

1 Ответ

0 голосов
/ 06 февраля 2012

В вашем ItemTemplate для столбца вы можете поместить метку или что-то, имеющее className? Тогда не могли бы вы обновить все на странице, которая имеет этот класс, с новым значением?

$('.poz_nazwaClass').val("valueofchangeditem");    

Если вы не используете jQuery, добавив тег, element.getElementsByTagName ('poz_nazwaTag') затем выполните цикл по элементам, которые я думаю.

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