如何从gridview获取单元格值?

时间:2011-12-29 07:39:31

标签: c# javascript gridview

朋友们,我的网页中有一个gridview,按以下方式设计: -

    <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>

我正在使用数据源绑定此网格。现在,我想从gridview的最后一个填充行获取“USER_ACTIVITIES_ID”的值。我正在使用hiddenfield来保存此id并使用javascript将其用于项目中的其他目的。但是,我的问题是我没有得到ID的值(无论是后端编码还是javascript)。任何人都可以告诉我在哪个事件或代码,我可以得到这个价值?请,我需要它很严重。提前谢谢。

7 个答案:

答案 0 :(得分:1)

试试这个:

int lastrow = grdPrevious.Rows.Count - 1;
Label lb = (Label)grdPrevious.Rows[lastrow].FindControl("Label5");
Response.Write(lb.Text);

答案 1 :(得分:0)

目的是什么?例如。如果要删除或编辑特定项目,请单击表格行中的按钮?

答案 2 :(得分:0)

我会使用JQuery访问divProducts中的Label5的最后一个实例。首先,我将为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();

答案 3 :(得分:0)

确定。我想你想做的就是分页。如果我是对的,那么有许多教程要做表格分页(批量行的分页,以编号顺序)。在ASP.Net中,我认为有一个名为'AlloWPaging'的属性用于标准的'GridView'控件。

答案 4 :(得分:0)

这是我身边最好的主意。 -

使用DOM迭代<tr>个元素。首先采用<table>元素。 然后获得firstChild。虽然<tr>元素中有更多<table>个元素 继续迭代。当你得到最后一个元素时,你就在那里。

您可以在最后一个TR中查找TD,其中存储了最后一个USER_ACTIVITY_ID。 然后你可以得到内部文本值。 一个简单的例子是 -

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

(有时当实际代码不在我面前时,很难提供帮助。)

答案 5 :(得分:0)

您需要为GridView提供HTML ID(在您的情况下,它是grdPrevious)。

您可以在设计视图中打开网页,然后写入<HEAD> -

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

</script>

你可以使用John Hartsock在

中列出的代码在那里使用javascript

this链接。

希望它对你有所帮助。 :)(实际上我不是asp.net开发人员)

答案 6 :(得分:0)

试试这个!

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

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

希望这个有帮助!