Запускайте jquery каждый раз, когда сетка заполняется, и перебирайте все строки gridview - PullRequest
0 голосов
/ 07 октября 2011

Я хочу, чтобы файл jquery запускался каждый раз, когда заполняется Grid, и файл jquery должен циклически проходить по сетке и выполнять некоторые действия в зависимости от определенных условий.В моей сетке у меня есть столбец с именем StatusId в виде сетки, и на основе Statuid я хочу установить текст для метки, которая находится внутри другого столбца.Я пытаюсь сделать это с помощью jQuery.Я не знаю, где я иду не так.

У меня есть внешний файл JS с именем Setstatus.js

StatusId - это связанное поле в виде сетки.lblStatus - это метка в поле шаблона в окне сетки.

$(document).ready(function () {

    $('#<%=gvAsgnments.ClientID%>')
                 .find('tr')
                 .each(function (row) {
                     $(this).each(function (col) {
                         if (($.trim($(this).find("input[id*='StatusId']").val() === 0))) {
                             $("input[id*='lblStatus']", $(this)).val('New');
                             $("input[id*='StatusId']", $(this)).style.display = 'block';
                         }
                     });
                 });

}); 

Я имею в виду Setstatus.js на моей странице aspx

<script type="text/javascript" src="Scripts/Admin.js" ></script>

Файл jquery не дает никаких результатов.Что я пропускаю.

образец HTMl:

   <div>
        <table class="CNIGridView" cellspacing="0" rules="all" align="center" border="1" id="MainContent_gvAsgnments" style="border-collapse:collapse;">
            <tr class="CNIGridViewHeader">
                        <th scope="col" abbr="Status">&nbsp;</th>
                        <th scope="col" abbr="Claim">Claim</th>
                        <th scope="col" abbr="Claimant">Claimant</th>
                        <th scope="col" abbr="Date">Date</th>
                        <th scope="col">StatusId</th>
            </tr>
                    <tr class="CNIGridViewRow">
                  <td>
                           <span id="MainContent_gvAdminActiveAsgnments_lblStatus_0"></span>
                          </td>
                          <td>
                           <span id ="MainContent_gvAdminActiveAsgnments_lblClaim_0">MH001025</span>
                          </td>
                           <td>
                          <span id="MainContent_gvAdminActiveAsgnments_lblClaimant_0">Deborah</span>
                           </td>
                           <td>10/2/2011 12:00:00 AM</td>
                <td>0</td>
                   </tr>
        </table>
    </div>

Заранее спасибо

BB

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Предполагая, что вы используете метки Asp.Net, на самом деле метка не будет иметь идентификатора того, что вы указали в своем коде. Самый простой способ это сделать - использовать свойство CssClass, чтобы присвоить каждому из них идентификатор и обратиться к ним, используя его в селекторе.

Что касается повторного связывания GridView, какой метод вы используете для его обновления?

1 голос
/ 07 октября 2011

Это не выполняет или просто не дает результатов? Есть определенная разница. Открыли ли вы консоль javascript или отладчик, чтобы увидеть, есть ли какие-либо ошибки на странице?

Одна мысль - вы говорите, что lblStatus - это ярлык. Если это действительно HTML-метка, то input[id*='lblStatus'] не будет работать как селектор. Это должно быть label[id*='lblStatus']. Кроме того, я не думаю, что вы устанавливаете текст элемента метки с помощью val(), вы бы использовали text().

Надеюсь, это поможет.

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