2011-12-29 103 views
0

朋友们,我有一个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)。任何人都可以告诉我在哪个事件或代码中,我可以得到这个值吗?请,我非常需要它。提前致谢。

+0

您是如何设置值的,不清楚您无法从隐藏字段或网格获取值,总之实际问题 – V4Vendetta 2011-12-29 07:45:21

+0

我无法从上一次获取“USER_ACTIVITIES_ID”的值将行的网格添加到任何变量(hiddenfield或normal变量)。我从sqlserver 2005数据库中提取数据并将其放入数据集中,并将网格与此数据集绑定。但我无法'GET'值。 – Sukanya 2011-12-29 07:53:48

+0

@Alison你为什么要编辑这个问题?它不可读或不可理解? – Sukanya 2012-01-04 06:43:20

回答

1

试试这个:

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

,谢谢你,非常感谢你..只是想要什么... – Sukanya 2011-12-29 09:48:29

0

目的是什么?例如。如果你想删除或编辑特定的项目,点击表格中的一个按钮?

+0

不,我必须获取网格中显示的最后一个ID,然后从sqlserver 2005数据库的表中获取下一个10个数据。 – Sukanya 2011-12-29 07:55:44

0

我会用jQuery来访问divProducts中Label5的最后一个实例。首先,我会添加一个额外的类Label5使得它标志着从该表中的所有其他跨不同(注:ASP:标签将呈现一个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

谢谢,但它不适合我。 – Sukanya 2011-12-29 08:05:11

0

好的。我猜你想要做的是分页。如果我是对的,有很多许多教程来做表格分页(按照编号顺序分页批量行)。在ASP.Net中,我认为标准的'GridView'控件有一个名为'AlloWPaging'的属性。

+0

Thanks.I'm在向下滚动事件中进行分页。代码的这一部分出现在稍后阶段。但首先,我需要从网格中获取最后一个“ID”。 – Sukanya 2011-12-29 08:07:54

0

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

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

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

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

(有时变得困难时帮助了实际的代码是不盈我的。)

+0

我不知道如何遍历以及在哪里编写代码。你可以提供一些东西吗? – Sukanya 2011-12-29 08:53:39

0

您需要提供一个HTML ID到GridView(在你的情况下它是grdPrevious)。

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

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

</script> 

,你也可以javascript使用有约翰Hartsock列出的代码,例如一个在

this链接。

希望它可以帮助你。 :)(其实我不是一个asp.net开发者)

0

试试这个!

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

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

希望这一个帮助!

相关问题