Как получить значение ячейки из сетки? - PullRequest
0 голосов
/ 29 декабря 2011

Друзья, у меня есть сетка на моей веб-странице, разработанная следующим образом: -

    <div id="divProducts" style="height:200px; overflow:auto">
       <asp:GridView ID="grdPrevious" runat="server" Width="100%" 
           AutoGenerateColumns="false" ShowHeader="false" GridLines="None" 
           ShowFooter="true" AllowPaging="false">
           <Columns>
               <asp:TemplateField>
                  <ItemTemplate>
                      <tr>
                          <td style="width:20%; visibility:hidden">
                              <label class="labelHead">Activity Id </label>
                          </td><td></td>
                          <td style="width:80%; visibility:hidden">
                              <asp:Label ID="Label5" runat="server" 
                                 Text='<%# Eval("USER_ACTIVITIES_ID") %>'
                                 CssClass="labelCss"></asp:Label>
                          </td>
                      </tr>
                      <tr>
                          <td style="width:20%" >
                             <label class="labelHead">Date </label>
                          </td><td>:</td>
                          <td style="width:80%">
                              <asp:Label ID="Label1" runat="server" 
                                  Text='<%# Eval("ACTIVITY_DATE1") %>'
                                  CssClass="labelCss"></asp:Label>
                          </td>
                      </tr>
                      <tr>
                          <td>
                             <label class="labelHead">Interaction Type </label>
                          </td>
                          <td>:</td>
                          <td>
                              <asp:Label ID="Label2" runat="server" 
                                  Text='<%# Eval("INTERFACE_DESCRIPTION") %>'
                                  CssClass="labelCss" ></asp:Label>
                          </td>
                      </tr>
                      <tr>
                          <td>
                              <label class="labelHead">Prospect</label>
                          </td>
                          <td>:</td>
                          <td>
                              <asp:Label ID="Label3" runat="server" 
                                  Text='<%# Eval("PROSPECT_DESCRIPTION") %>' 
                                  CssClass="labelCss"></asp:Label>
                          </td>
                      </tr>
                      <tr>
                          <td  valign="top" >
                              <label class="labelHead">Note </label>
                          </td>
                          <td valign="top">:</td>
                          <td  valign="top">
                              <asp:Label ID="Label4" runat="server" 
                                  Text='<%# Eval("NOTES") %>' CssClass="labelCss">
                              </asp:Label>
                          </td>                                                                
                      </tr>
                      <tr>
                          <td colspan="3"><hr size="1px" color="#D5DEA1" 
                             style="margin:10px 0px;" /> 
                          </td>
                       </tr>
                    </ItemTemplate>
                    <ItemStyle Font-Names="Trebuchet MS;" />
                </asp:TemplateField>
            </Columns>
            <EmptyDataTemplate>
                <table width="100%" cellpadding="0" cellspacing="0" border="0">
                    <tr>
                        <td align="center" class="gridViewNoRecords">
                            No Records found
                        </td>
                    </tr>
                </table>
            </EmptyDataTemplate>
        </asp:GridView>
    </div>

Я связываю эту сетку с источником данных. Теперь я хочу получить значение «USER_ACTIVITIES_ID» из последней заполненной строки вида сетки. Я использую скрытое поле для хранения этого идентификатора и использую его для других целей в проекте, используя JavaScript. Но моя проблема в том, что я не получаю значение идентификатора (ни с помощью внутреннего кода, ни с помощью JavaScript). Может кто-нибудь сказать мне, в каком событии или по коду я могу получить это значение? Пожалуйста, мне это очень нужно. Заранее спасибо.

Ответы [ 7 ]

1 голос
/ 29 декабря 2011

Попробуйте это:

int lastrow = grdPrevious.Rows.Count - 1;
Label lb = (Label)grdPrevious.Rows[lastrow].FindControl("Label5");
Response.Write(lb.Text);
0 голосов
/ 29 декабря 2011

Попробуйте это!

int lastRecord = grdPrevious.Rows.Count - 1;
Label lbl;
lbl = (Label)grdPrevious.Rows[lastRecord].Cells[0].FindControl("Label5");

int ID = Convert.ToInt32(lbl.Text);

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

0 голосов
/ 29 декабря 2011

вам нужно предоставить HTML-идентификатор для GridView (в вашем случае это grdPrevious).

вы можете открыть веб-страницу в режиме конструктора и написать в <HEAD> -

<script language='javascript' runat='server'>

</script>

, и вы можете использовать javascript там, используя код, указанный Джоном Хартсоком в

этой ссылке.

Надеюсь, она вам поможет.:) (На самом деле я не разработчик asp.net)

0 голосов
/ 29 декабря 2011

Тогда это лучшая идея с моей стороны. -

Используйте DOM для перебора элементов <tr>. Сначала возьмите элемент <table>. Тогда возьми первого ребенка. Хотя внутри элемента <table> больше элементов <tr> продолжать итерации. Когда вы получите последний '' элемент, вы там.

Вы можете найти TD в этом последнем TR, где хранится ваш последний USER_ACTIVITY_ID. Тогда вы можете получить значение внутреннего текста. Простой пример будет -

getTextFromTD = function() {
var gridView = document.getElementById("myGridView");
var lastTR = gridView.childNodes.item(5);
var ourRequiredTD = lastTR.childNodes(2);
requiredText = ourRequiredTD.innerHTML;
}

(Иногда становится трудно помочь, когда фактический код не находится передо мной).

0 голосов
/ 29 декабря 2011

Хорошо.Я думаю, что вы хотите сделать, это нумерация страниц.Если я прав, существует много-много учебных пособий по разбивке на страницы (разбивка по группам строк в пронумерованной последовательности).В ASP.Net я думаю, что есть свойство «AlloWPaging» для стандартного элемента управления «GridView».

0 голосов
/ 29 декабря 2011

Я бы использовал JQuery для доступа к последнему экземпляру Label5 в divProducts.Во-первых, я бы добавил дополнительный класс в Label5, чтобы он был помечен как отличающийся от всех других диапазонов в таблице (Примечание: asp: Label отобразит SPAN)

 <asp:Label ID="Label5" runat="server" 
                             Text='<%# Eval("USER_ACTIVITIES_ID") %>'
                             CssClass="labelCss useractivity"></asp:Label>

Затем что-то вроде этого, чтобы найти егона клиенте.

var id=$("#divProducts").children("span[class=useractivity]:last").text();
0 голосов
/ 29 декабря 2011

Какова цель?Например,Если вы хотите удалить или отредактировать определенный элемент, нажмите кнопку в строке таблицы?

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